當前位置:編程學習大全網 - 編程語言 - c# 編程題 求大牛幫忙 明天考試

c# 編程題 求大牛幫忙 明天考試

//?判斷三個整數是否能組成三角形三邊

public?bool?Delta(int?a,?int?b,?int?c)

{

//?壹定情況下,我們只須要判斷任兩個數相加都大於第三個數即可

//?不過這種寫法其實並不占便宜

//?bool?rslt?=?(a+b)>c?&&?(b+c)>a?&&?(a+c)>b

//?實際上我們正常會用另壹個公式

//?p?=?1/2(a+b+c);

//?bool?rslt?=?p>a?&&?p>b?&&?p>c

//?當然這種方案下會涉及到壹個小數的問題,怎麽辦?兩邊同乘以2,解決這種bug

//?p?=?a+b+c;

//?bool?rslt?p>2*a?&&?p?>?2*b?&&?p>2*c

//?同樣還使用int,避免引入double等浮點運算。

//?當然,這種比較存在壹個問題:重復運算。如果a>b

//?那麽?p>2*a成立的話,p>2*b,所以沒有必要再比較了。

int?tmp?=?Math.Max(a,b,c);

bool?rslt?=?(a+b+c)>2*tmp;

return?rslt;

}//?其實就是讓遞歸改成循環形式而已

static?long?fibonacci(int?n)

{

if(n?==?1?||?n?==2?)

return?1l;

long?tmp0?=?1l,?tmp1?=?1l,tmp=0l;

for(int?i?=3;i<=n;i++)

{

tmp?=?tmp0+tmp1;

tmp1?=?tmp0;

tmp0?=?tmp;

}

return?tmp;

//?其實tmp是用來進行交換

//?tmp0表示當前項

//?tmp1表示前壹項

//?每次的我們把兩者各記錄下來(tmp)當前項

//?把n-2項交換到n-1項

//?把n-1項交換到n項

//?最後返回值為當前項tmp0,當然tmp與tmp0是相等的,返回哪個都無所謂的。

//?要註意的是,程序開始最好判斷n>0,否則這玩意會返回0的!

}

//?打印完全平方數,其實是壹句話的事

for(int?i?=1;i<100;i++)

Console.WriteLine($"{i*i}");

//?底下的也不復雜,妳自己寫吧

  • 上一篇:鋼鐵企業的智能制造有哪些方式
  • 下一篇:智能科技公司的經營範圍有哪些 範圍很廣需要劃側重點
  • copyright 2024編程學習大全網