日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

11.10错题集(7-函数)

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 11.10错题集(7-函数) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

7-1 遞歸實現順序輸出整數:

7-2 遞歸求簡單交錯冪級數的部分和:

7-3 出生年:

7-4 近似求PI:


7-1 遞歸實現順序輸出整數:

-本題要求實現一個函數,對一個整數進行按位順序輸出。

-本題要求實現一個函數,對一個整數進行按位順序輸出。

-函數接口定義:

void printdigits( int n );

-函數printdigits應將n的每一位數字從高位到低位順序打印出來,每位數字占一行。

-裁判測試程序樣例:

#include <stdio.h>void printdigits( int n );int main() {int n;scanf("%d", &n);printdigits(n);return 0; }/* 你的代碼將被嵌在這里 */

-輸入樣例:

12345

-結尾無空行

-輸出樣例:

1 2 3 4 5

-解答-

? void printdigits( int n ){if(n<10) printf("%d\n",n);else{printdigits(n/10);printf("%d\n",n%10);} }??

7-2 遞歸求簡單交錯冪級數的部分和:

-本題要求實現一個函數,計算下列簡單交錯冪級數的部分和:

-f(x,n)=x?x2+x3?x4+?+(?1)n?1xn

-函數接口定義:

double fn( double x, int n );

-其中題目保證傳入的n是正整數,并且輸入輸出都在雙精度范圍內。函數fn應返回上述級數的部分和。建議嘗試用遞歸實現。

-裁判測試程序樣例:

#include <stdio.h>double fn( double x, int n );int main() {double x;int n;scanf("%lf %d", &x, &n);printf("%.2f\n", fn(x,n));return 0; }/* 你的代碼將被嵌在這里 */

-輸入樣例:

0.5 12

-輸出樣例:

0.33

-解答1(函數法)-

double fn( double x, int n){if( n== 1) return x;elsereturn pow(-1,n-1)*pow(x,n)+fn(x,n-1); }

-解答2(計算找規律法)-

//n=1,f(x,1)=x; //n=2,f(x,2)=x-x*x=x*(1-x); //n=3,f(x,3)=x-x*x+x*x*x=x*(1-x+x*x)=x*(1-x*(1-x)); //即,n=i時,f(x,i)=x*(1-f(x,i-1)); (i>1,i屬于N) double fn( double x, int n ){if(n==1) return x;else return x*(1-fn(x,n-1)); }

7-3 出生年:

-以上是新浪微博中一奇葩貼:“我出生于1988年,直到25歲才遇到4個數字都不相同的年份。”也就是說,直到2013年才達到“4個數字都不相同”的要求。本題請你根據要求,自動填充“我出生于y年,直到x歲才遇到n個數字都不相同的年份”這句話。

-輸入格式:

-輸入在一行中給出出生年份y和目標年份中不同數字的個數n,其中y在[1, 3000]之間,n可以是2、或3、或4。注意不足4位的年份要在前面補零,例如公元1年被認為是0001年,有2個不同的數字0和1。

-輸出格式:

-根據輸入,輸出x和能達到要求的年份。數字間以1個空格分隔,行首尾不得有多余空格。年份要按4位輸出。注意:所謂“n個數字都不相同”是指不同的數字正好是n個。如“2013”被視為滿足“4位數字都不同”的條件,但不被視為滿足2位或3位數字不同的條件。

-輸入樣例1:

1988 4

-輸出樣例1:

25 2013

-輸入樣例2:

1 2

-輸出樣例2:

0 0001

-解答(此處沒使用函數)-?

#include <stdio.h> int main(){ int bir[4];int year, n; scanf("%d%d",&year, &n);int i, count = 0; for(i=year; i<3020; i++){//考慮到輸入的是出生年份,作為界限的目標年份未知,取i<3020(其實經過檢測上界限為3012) count = 1; bir[0] = i/1000;bir[1] = i/100%10; bir[2] = i/10%10; bir[3] = i%10;//轉化成數字if(bir[0] != bir[1] && bir[0] != bir[2] && bir[0] != bir[3]) count++; if(bir[1] != bir[2] && bir[1] != bir[3]) count++; if(bir[2] != bir[3]) count++;//要求各項比較為異時記錄數遞加if(count == n) break; } printf("%d %04d", i-year, i); }

7-4 近似求PI:

-本題要求編寫程序,根據下式求π的近似值,直到最后一項小于給定精度eps。

-2π?=1+31!?+3×52!?+3×5×73!?+?+3×5×?×(2×i+1)i!?+?

-輸入格式:

-輸入在一行中給出精度eps,可以使用以下語句來讀輸入:

scanf("%le", &eps);

-輸出格式:

-在一行內,按照以下格式輸出π的近似值(保留小數點后5位):

PI = 近似值

-輸入樣例:

1E-5

-輸出樣例:

PI = 3.14158

-解答-

#include<stdio.h> int main(void){double i=1;double eps,sum=0,re=1;scanf("%le", &eps);while(re>=eps){sum = sum + re;re = re * i/(2*i+1);i = i + 1;}sum = sum + re;printf("PI = %.5f",2*sum);return 0; }

總結

以上是生活随笔為你收集整理的11.10错题集(7-函数)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。