免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 發帖

c++練習題10

1545044585478.jpg
2018-12-17 19:08
  1. #include<stdio.h>
  2. #include<math.h>

  3. double recurs(double n){
  4.         if(n==2){
  5.                 return 1.0/2;
  6.         }
  7.         return 1/(n*(n-1)) + recurs(n-1);
  8. }

  9. double recurpi(double n){
  10.         double pro;
  11.         if(n==0){
  12.                 return 4;
  13.         }
  14.         pro = (2*n+1)*(2*n+1);
  15.         return (pro-1)/pro * recurpi(n-1);
  16. }

  17. int main(void){
  18.         double n,i=1;
  19.         printf("輸入n for a小題:");
  20.         scanf("%lf",&n);
  21.         printf("%lf\n",recurs(n));
  22.        
  23.         printf("輸入n for b小題:");
  24.         scanf("%lf",&n);
  25.         printf("%lf\n",recurpi(n));
  26.        
  27.         //加分題
  28.         do{
  29.                 i++;
  30.         }while(fabs(M_PI - recurpi(i)) >0.005);
  31.        
  32.         printf("when n = %lf , approximated value πreduces to 0.005.\n",i);
  33.         printf("approximated value π= %lf\n",recurpi(i));
  34.         printf("constant π= %lf",M_PI);
  35. }
複製代碼
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

小貓貓2017了喔!
(點一下康娜醬傳送到小貓貓2017大事記)

1545044619839.jpg
2018-12-17 19:08
  1. #include<stdio.h>
  2. double power(int x, int y){
  3.         if(y<0){
  4.                 return 1.0/power(x,-y);
  5.         }
  6.         if(y==0){
  7.                 return 1;
  8.         }
  9.         if(y==1){
  10.                 return x;
  11.         }
  12.         return x * power(x,y-1);
  13. }

  14. int main(void){
  15.         int x,y;
  16.         printf("輸入x和y: ");
  17.         scanf("%d %d",&x,&y);
  18.         printf("\n%d 的 %d 次方 = %lf",x,y,power(x,y));
  19. }
複製代碼

小貓貓2017了喔!
(點一下康娜醬傳送到小貓貓2017大事記)

TOP

1545044653171.jpg
2018-12-17 19:09
  1. #include<stdio.h>
  2. int walk(int n){
  3.         if(n==1){
  4.                 return 1;
  5.         }
  6.         if(n==2){
  7.                 return 2;
  8.         }
  9.         if(n==3){
  10.                 return 4;
  11.         }
  12.         return walk(n-1) + walk(n-2) + walk(n-3);
  13. }

  14. int main(void){
  15.         int n;
  16.         printf("輸入總步數:");
  17.         scanf("%d",&n);
  18.         printf("有%d種方法",walk(n));
  19. }
複製代碼

小貓貓2017了喔!
(點一下康娜醬傳送到小貓貓2017大事記)

TOP

前言:此題由 艾菇 提供,感謝給力支援。

1545044702138.jpg
2018-12-17 19:09

1545045105620.jpg
2018-12-17 19:12
  1. #include<stdio.h>
  2. void walk(int step,int remain,int *list,int idx){
  3.         /*step   現在要走一步還是兩步
  4.           remain 現在剩下幾步
  5.           list   紀錄這次要走幾步
  6.           idx    紀錄這次是第幾次移動
  7.         */
  8.         int i;
  9.         int n_remain = remain - step;          //下次會剩下幾步
  10.         
  11.         *(list + idx) = step;                   //紀錄這次要走幾步
  12.         
  13.         if(n_remain == 0){                     //要走到終點了
  14.                 for(i=0 ; i <= idx ; i++){      //將紀錄的步數輸出
  15.                         printf("%d",list[i]);
  16.                 }
  17.                 printf("\n");
  18.         }else if(n_remain>0){
  19.                 idx++;                           //紀錄增加一次移動
  20.         
  21.                 walk(1,n_remain,list,idx);
  22.                 walk(2,n_remain,list,idx);
  23.         }else{                                    //n_remain為負,不合理的情況
  24.                 return;
  25.         }

  26. }

  27. int main(void){
  28.         int dis;
  29.         
  30.         printf("輸出總距離: ");
  31.         scanf("%d",&dis);
  32.         
  33.         int list[dis];
  34.         
  35.         walk(1,dis,list,0);
  36.         walk(2,dis,list,0);
  37. }
複製代碼

小貓貓2017了喔!
(點一下康娜醬傳送到小貓貓2017大事記)

TOP

1545044706770.jpg
2018-12-17 19:15
  1. #include<stdio.h>
  2. int cover(int n){
  3.         if(n<=2){
  4.                 return 2;
  5.         }
  6.         return 2 * cover(n-2);
  7. }

  8. int main(void){
  9.         int n;
  10.        
  11.         printf("輸入n: ");
  12.         scanf("%d",&n);
  13.         printf("%d種可能",cover(n));
  14. }
複製代碼

小貓貓2017了喔!
(點一下康娜醬傳送到小貓貓2017大事記)

TOP

返回列表