實驗四 蠻力法
第1關:百錢百雞問題
任務描述
本關任務:用蠻力法編程解決百錢百雞問題,
百錢百雞問題:中國古代數學家張丘建在他的《算經》中提出了著名的“百錢百雞問題”:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買百雞,翁、母、雛各幾何?
編程要求
請在右側編輯器Begin-End處補充代碼,完成本關任務,要求程式輸出所有可行的方法,按公雞的升序輸出,輸出格式為:公雞有a只,母雞有b只,小雞有c只,每個輸出結果后用空行隔開,(其中 a,b,c分別用具體資料代替)
#include <stdio.h>
void main()
{
/********** Begin **********/
int x,y,z;
for(x=0;x<=20;x++)
{
for(y=1;y<=34;y++)
{
for(z=1;z<=100;z++)
{
if((100==x+y+z)&&(100==5*x+3*y+z/3.0))
{
printf("公雞有%d只,母雞有%d只,小雞有%d只\n",x,y,z);
}
}
}
}
/********** End **********/
}
第2關:數字迷
任務描述
本關任務:根據下面計算,用蠻力法解決數字迷問題,求出由 A、B、C 替代的相乘數字,
A B C A B
× A
-------------------
D D D D D D
編程要求
請在右側編輯器Begin-End處補充代碼,完成本關任務,要求程式輸出結果格式為:ABCAB*A=DDDDDD(A、B、C、D 為阿拉伯數字),
#include <stdio.h>
void main()
{
/********** Begin **********/
int A,B,C,D;
long E,F;
for(A=3;A<=9;A++)
{
for(D=1;D<=9;D++)
{
E=D*100000+D*10000+D*1000+D*100+D*10+D;
if(E%A==0)
{
F=E/A;
if((F/10000==A)&&((F%100)/10==A))
{
if((F/1000)%10==F%10)
{
printf("%d*%d=%d",F,A,E);
}
}
}
}
}
/********** End **********/
}
第3關:求3個數的最小公倍數
任務描述
本關任務:輸入 3 個數 a、b、c, 求這 3 個數的最小公倍數,
編程要求
請在右側編輯器Begin-End處補充代碼,完成本關任務,
測驗說明
平臺會對你撰寫的代碼進行測驗,比對你輸出的數值與實際正確數值,只有所有資料全部計算正確才能通過測驗:
測驗輸入:2 4 6
預期輸出:2,4,和6的最小公倍數是12
#include <stdio.h>
void main()
{
/*********** Begin **********/
int x1,x2,x3,i;
scanf("%d %d %d",&x1,&x2,&x3);
i=1;
while(1){
if((i%x1==0)&&(i%x2==0)&&(i%x3==0))
break;
i++;
}
printf("%d,%d,和%d的最小公倍數是%d",x1,x2,x3,i);
/*********** End **********/
}
第4關:韓信點兵問題
任務描述
本關任務:求韓信一共有多少兵,
韓信有一隊兵,他想知道有多少人,便讓士兵排隊報數,
- 按從 1 至5報數,最末一個士兵報的數為 1;
- 按從 1 至 6 報數,最末一個士兵報的數為 5;
- 按從 1 至 7 報數,最末一個士兵報的數為 5;
- 按從 1 至 11 報數,最末一個士兵報的數為 10;
- 按從 1 至 13 報數,最末一個士兵報的數為 11,
請問韓信至少有多少兵?
編程要求
請在右側編輯器Begin-End處補充代碼,完成本關任務,最終程式輸出格式為:士兵最少有X個(X 為具體資料),
#include <stdio.h>
void main()
{
/********** Begin **********/
for(int n=5;n<=9999;n++){
if(((n-1)%5==0)&&((n-5)%6==0)&&((n-5)%7==0)&&((n-10)%11==0)&&((n-11)%13==0))
printf("士兵最少有%d個",n);
}
/********** End **********/
}
第5關:白帽子紅帽子問題
任務描述
本關任務:正確輸出他們各自所戴帽子的顏色,
廳內有 5 個人,他們均戴著帽子,有白帽子和紅帽子,
已知戴白帽子的說真話,戴紅帽子的說假話,請從他們各自提供的線索辨別誰戴白帽子,誰戴紅帽子,
- 甲:我看見一個戴白帽子的
- 乙:我沒有看見戴紅帽子的
- 丙:我看見一個戴白帽子的,但不是甲
- 丁:我沒有看見戴白帽子的
- 戊:我的帽子和丙一樣
編程要求
請在右側編輯器Begin-End處補充代碼,完成本關任務,要求程式輸出結果按甲乙丙丁戊的順序分別輸出他們所戴帽子的顏色,輸出格式為:
甲戴X帽子
乙戴X帽子
丙戴X帽子
丁戴X帽子
戊戴X帽子
其中 X 代表他們所戴帽子的具體顏色,
#include <stdio.h>
void main()
{ int c1,c2,c3,c4,c5;
/********** Begin **********/
for(int a=0;a<=1;a++)
for(int b=0;b<=1;b++)
for(int c=0;c<=1;c++)
for(int d=0;d<=1;d++)
for(int e=0;e<=1;e++)
{
c1=((b+c+d+e)==1)==a;
c2=((a+c+d+e)==4)==b;
c3=((b+d+e)==1)==c;
c4=((a+b+c+e)==0)==d;
c5=(c==e)==e;
if(c1&&c2&&c3&&c4&&c5)
{
if(a==1)
printf("甲戴帽子\n");
else
printf("甲戴紅帽子\n");
if(b==1)
printf("乙戴白帽子\n");
else
printf("乙戴紅帽子\n");
if(c==1)
printf("丙戴白帽子\n");
else
printf("丙戴紅帽子\n");
if(d==1)
printf("丁戴白帽子\n");
else
printf("丁戴紅帽子\n");
if(e==1)
printf("戊戴白帽子\n");
else
printf("戊戴紅帽子\n");
}
}
/********** End **********/
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241006.html
標籤:其他
上一篇:MySQL的下載與安裝
下一篇:作業系統原理簡答題
