程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 小蜜蜂--大數問題,小蜜蜂--大數

小蜜蜂--大數問題,小蜜蜂--大數

編輯:關於C語言

小蜜蜂--大數問題,小蜜蜂--大數


解題源代碼:

 1 #include <stdio.h> 
 2 
 3 unsigned long long RoadWay(int n) {    //定義了unsigned long long類型
 4     unsigned long long num1=1lu, num2=2lu;
 5     unsigned long long temp;
 6     int i;
 7     if(n == 2) {
 8         return 1lu;
 9     } else if(n==3){
10         return 2lu;
11     } else {
12         for (i=4; i<=n; ++i) {
13             temp = num1 + num2;
14             num1 = num2;
15             num2 = temp;
16         }
17         return num2;
18     }
19 }
20 
21 int main(int argc, const char * argv[]) {
22     // insert code here...
23     int n;
24     int a, b;
25     int len;
26     
27     scanf("%d", &n);
28     
29     while (n>0) {
30         scanf("%d%d", &a, &b);
31         if(a>0 && a< b && b<50) {
32             len = b-a;
33             printf("%I64d\n", RoadWay(1+len));
34         } else {
35             break;
36         }
37         --n;
38     }
39 
40     return 0;
41 }

問題總結:

  • 盡量不要使用遞歸算法,可以使用循環或者尾遞歸實現
  • int -> unsigned int==unsigned long -> unsigned long long

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved