算法競賽(二)

目錄

一、aabb問題

二、7744問題

三、3n + 1 問題

四、近似計算

五、階乘之和

六、數據統計

一、aabb問題

沒有輸入:

樣例輸出:

1100

1111

1122

*****

源代碼:

代碼語言:JavaScript代碼運行次數:0運行復制

#includeint main(){int a,b;for(a=1;a<=9;a++)for(b=0;b<=9;b++){printf("%dn",a*1100+b*11);}return 0;  } 

二、7744問題

樣例輸出:

7744

源代碼:

代碼語言:javascript代碼運行次數:0運行復制

#include#includeint main(){int a,b;for(a=1;a<=9;a++)for(b=0;b<=9;b++){int n = a*1100+b*11;int m = floor(sqrt(n) + 0.5);if(m*m == n)printf("%dn",n);}return 0;  } 

三、3n + 1 問題

樣例輸入:

3

樣例輸出:

7

源代碼:

代碼語言:javascript代碼運行次數:0運行復制

#includeint main(){int n,count = 0;scanf("%d",&n);while(n != 1){if(n%2 == 1)n=3*n +1;elsen=n/2;count++;}printf("%d",count);return 0;  } 

四、近似計算

算法競賽(二)

,直到最后一項小于

算法競賽(二)

?樣例輸出:

0.785399

源代碼:

代碼語言:javascript代碼運行次數:0運行復制

#includeint main(){double sum =0;for(int i = 0;;i++){double term = 1.0/(i*2+1);if(i%2 == 0)sum =sum + term;else sum = sum - term;if(term<1e-6)//e代表底數10 -6代表負六次方break;}printf("%.6fn",sum);return 0;  } 

五、階乘之和

樣例輸入:

10

樣例輸出:

?37913

源代碼:

代碼語言:javascript代碼運行次數:0運行復制

#includeint main(){int n,S;scanf("%d",&n);for(int i=1;i<=n;i++){int f=1;//每次循環都要初始化變量for(int j=1;j<=i;j++)f*=j;S+=f;}printf("%dn",S%1000000);return 0;  } 

六、數據統計

樣例輸入

1 2 3

樣例輸出

1 3 2.000?

源代碼:

代碼語言:javascript代碼運行次數:0運行復制

#includeint main(){int x,n=0,min,max,s=0;while(scanf("%d",&x)==1){s+=x;if(xmax)max =x;n++;}printf("%d %d %.3f",min,max,s*1.0/n);return 0;}

PS:有時候,按下回車鍵,不一定意味著輸入結束,在windows環境下,我們輸入完成后,還要按下 ctrl + z,這個時候代表輸入結束,linux環境下,按下ctrl + D 可代表輸入結束

數據統計(重定向版)

代碼語言:javascript代碼運行次數:0運行復制

//重定向法#define LOCAL#include#define INF 1000000000int main(){#ifdef INF LOCALfreopen("data.in","r",stdin);freopen("data.out","w",stdout);#endifint x,n = 0,min =INF,max = -INF,s = 0;while(scanf("%d",&x) == 1){s += x;if(xmax) max = x;n++; }  printf("%d %d %.3fn",min,max,(double)s/n); return 0;}

數據統計(fopen版)

代碼語言:javascript代碼運行次數:0運行復制

#include#define INF 1000000000int main(){FILE *fin, *fout;fin = fopen("data.in","rb");fout = fopen("data.out","wb");int x,n = 0,min = INF,max = -INF,s = 0;while(fscanf(fin,"%d",&x)==1){s +=x;if(xmax) max = x;n++;}fprintf(fout,"%d %d %.3fn",min,max, (double)s/n);fclose(fin);fclose(fout);return 0;}

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享