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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法竞赛入门经典(第二版)答案——第一部分

發(fā)布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法竞赛入门经典(第二版)答案——第一部分 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?第一章程序設(shè)計入門

  • /輸入三個平均數(shù),輸出他們的平均值,保留三位小數(shù)/
  • #include<stdio.h> int main() {double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);printf("%.3lf",(a+b+c)/3);return 0; }
  • /輸入華氏溫度f,輸出對應(yīng)的攝氏溫度從,保留三位小數(shù)。提示 c= 5(f-32)/9/
  • #include<stdio.h> int main() {double c,f;scanf("%lf",&f);c = 5*(f-32)/9;printf("%.3lf",c);return 0; }

    3./輸入正整數(shù)n,輸出1+2+3+…n的值,提示:目標(biāo)使解決問題,而不是練習(xí)編程*/

    #include <stdio.h> int main() {int n;scanf("%d", &n);printf("%d", (n + 1) * n / 2);return 0; } #include<stdio.h> int main() {int sum,i,n;scanf("%d",&n);for(i=1;i<=n;i++)sum = sum+i;printf("%d\n",sum);return 0; }
  • /輸入正整數(shù)n(0~360),輸出入n度的正弦函數(shù)值。提示使用數(shù)學(xué)函數(shù)/
  • #include<stdio.h> #include<math.h> #define pi acos(-1.0) int main() {int x;scanf("%d",&x);printf("%.3lf\n",sin(1.0*pi*x/180));printf("%.3lf\n",cos(1.0*pi*x/180));return 0; }
  • 一件衣服95元,若消費滿300元,可以打85折。輸入購買的衣服的數(shù)量,,輸出索要交付的的金額,保留兩位小數(shù)
  • #include <stdio.h> int main() {int n;scanf("%d", &n);printf("%.2lf", 95 * n >= 300 ? 95.0 * n * 0.85 : 95 * n);return 0; } #include<stdio.h> int main() {const double price = 95.00;int n;scanf("%d",&n);if(price*n <300)printf("%.2f",price*n);elseprintf("%.2lf",price*n*0.85);return 0; }
  • 輸入三角形3跳變的長度值(均為正整數(shù)),判斷是否能為直角三角形的三條邊長。如果可以則輸出yes,如果不能就輸出no。如果根本無法構(gòu)成三角形,則輸出not a triangle
  • #include<stdio.h> int main() {int a,b,c;scanf("%d%d%d",&a,&b,&c);if(a<=0||b<=0||c<=0||a+b<=c||a+c<=b||b+c<=a)printf("NOT A TRIANGLE!");else if(a+b>c&&a+c>b&&b+c>a){if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)printf("yes!");elseprintf("no!");}return 0; }
  • 輸入年份,判斷是否為閏年。如果是,則輸出yes,否則輸出no
    提示簡單的判斷除以4的余數(shù)是不夠的
  • #include<stdio.h> int main() {int year;scanf("%d",&year);if(year%4!=0)printf("no!\n");else if(year%100==0 && year%400!=0)printf("no!\n");elseprintf("yes!\n");return 0; } #include <stdio.h>int main() {int year;scanf("%d", &year);puts(year%400==0 || year%100!=0 && year%4==0 ? "yes!" : "no!");return 0; }

    第二章 循環(huán)結(jié)構(gòu)設(shè)計

    1.水仙花數(shù)
    輸出100~999中的所有水仙花數(shù)。若3位數(shù)ABC滿足ABC=A3 +B3 +C3 ,則稱其為水仙花數(shù)。例如153=13 +53 +33 ,所以153是水仙花數(shù)。

    #include<stdio.h> int main(void) {for(int i = 100;i<=999;i++){int a = i/100;int c = i%10;int b = (i-a*100-c)/10;if(i==a*a*a+b*b*b+c*c*c)printf("%d\n",i);}return 0; }

    2. 韓信點兵
    相傳韓信才智過人,從不直接清點自己軍隊的人數(shù),只要讓士兵先后以三人一排、五人一排、七人一排地變換隊形,而他每次只掠一眼隊伍的排尾就知道總?cè)藬?shù)了。輸入包含多組數(shù)據(jù),每組數(shù)據(jù)包含3個非負(fù)整數(shù)a,b,c,表示每種隊形排尾的人數(shù)(a<3,b<5,c<7),輸出總?cè)藬?shù)的最小值(或報告無解)。已知總?cè)藬?shù)不小于10,不超過100。輸入到文件結(jié)束為止。

    樣例輸入: 2 1 6 2 1 3 樣例輸出: Case 1: 41 Case 2: No answer #include<stdio.h> int main(void) {int a,b,c,i;//依次輸入三人一排,五人,七人一排的排尾數(shù)scanf("%d%d%d",&a,&b,&c);for(i = 10;i<=100;i++){if(i%3==a&&i%5==b&&i%7==c){printf("Case 1:%d\n",i);break;}}if(i>100)printf("Case 2: No answer");return 0; }
  • 倒三角形(triangle)
    輸入正整數(shù)n≤20,輸出一個n層的倒三角形。例如,n=5時輸出如下:
  • ######################### #include<stdio.h> int main(void) {int i ;scanf("%d",&i);for(int j=0;j<i;j++){//打印空格for(int k=0;k<j;k++)printf(" ");for(int k=0;k<2*i-2*j-1;k++)printf("#");printf("\n");}return 0; }

    2.4 子序列的和(subsequence)

    輸入兩個正整數(shù)n<m<10^6 ,輸出 1/n^2 + 1/(n+1)^2 +1/m^2,保留5位小數(shù)。輸入包含多組數(shù)據(jù),結(jié)束標(biāo)記為n=m=0。提示:本題有陷阱。

    樣例輸入: 2 4 65536 655360 0 0 樣例輸出: Case 1: 0.42361 Case 2: 0.0000 #include<stdio.h> int main() {int n, m;while(scanf("%d%d",&n,&m) && n){double sum = 0;while(n <= m){sum += 1.0/n/n; ++n;}printf("%.5lf\n", sum);}return 0; }

    5. 分?jǐn)?shù)化小數(shù)(decimal)

    輸入正整數(shù)a,b,c,輸出a/b的小數(shù)形式,精確到小數(shù)點后c位。a,b≤106 ,c≤100。輸入包含多組數(shù)據(jù),結(jié)束標(biāo)記為a=b=c=0。

    樣例輸入: 1 6 4 0 0 0 樣例輸出: Case 1: 0.1667 #include<stdio.h> int main(void) {int a,b,c,count=0;while(scanf("%d%d%d",&a,&b,&c)&&(b!=0||c!=0||a!=0)){count++;//.*f為占位符printf("Case%d:%.*f\n",count,c,(double)a/b);}return 0; }

    6.排列(permutation)
    用1,2,3,…,9組成3個三位數(shù)abc,def和ghi,每個數(shù)字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式輸出所有解,每行一個解。提示:不必太動腦筋。

    **下面是一些思考題。
    題目1。假設(shè)需要輸出2,4,6,8,…,2n,每個一行,能不能通過對程序2-1進(jìn)行小小的改動來實現(xiàn)呢?為了方便,現(xiàn)把程序復(fù)制如下:
    **

    1 #include<stdio.h> 2 int main() 3 { 4 int n; 5 scanf("%d", &n); 6 for(int i = 1; i <= n; i++) 7 printf("%d\n", i); 8 return 0; 9 }

    **
    任務(wù)1:修改第7行,不修改第6行。

    for(int i = 2; i<=2*n;i=i+2)

    任務(wù)2:修改第6行,不修改第7行。

    printf("%d\n",i+i);

    題目2。下面的程序運行結(jié)果是什么?“!=”運算符表示“不相等”。提示:請上機(jī)實
    驗,不要憑主觀感覺回答。**

    #include<stdio.h> int main() {double i;for(i = 0; i != 10; i += 0.1)printf("%.1f\n", i); return 0; }

    會永遠(yuǎn)持續(xù)打印下去,為什么?因為整數(shù)和浮點數(shù)的存儲方式不一樣,所以不會相同。

    總結(jié)

    以上是生活随笔為你收集整理的算法竞赛入门经典(第二版)答案——第一部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。