求解的問題描述:36塊磚,男搬4,女搬3,兩個小孩擡一塊磚,要求一次搬完,問男人、女人和小孩各需多少人?
求解思路:用for循環嵌套3層,定義3個變量:i,j,k,分别代表男,女和小孩。每層循環最大數都是磚的總數即可,最最内層的for循環再用if條件判斷語句實作男搬多少磚+女搬多少磚+小孩搬多少磚=磚的總數。
代碼如下:
代碼方案(一):
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=36;i++){
for(j=1;j<=36;j++){
for(k=1;k<=36;k++){
if(((4*i+3*j+0.5*k)==36))printf("男的有%d個,女的有%d個,小孩有%d個。\n",i,j,k);
}
}
}
}
代碼運作結果截圖:
代碼方案(二):
#include<stdio.h>
int main()
{
int i,j,k;
for(i=0;i<35;i++){
for(j=0;j<35;j++){
for(k=0;k<35;k++){
if(((4*i+3*j+0.5*k)==36))printf("男的有%d個,女的有%d個,小孩有%d個。\n",i,j,k);
}
}
}
}
代碼運作結果截圖:
完善代碼(主要是統計出總的搬磚方案個數,即加入統計方案個數功能):
#include<stdio.h>
int main()
{
int i,j,k;
int b=0;
for(i=1;i<=36;i++){
for(j=1;j<=36;j++){
for(k=1;k<=36;k++){
if(((4*i+3*j+0.5*k)==36)){
printf("男的搬磚的有%d個,女的搬磚的有%d個,小孩子搬磚的有%d個。\n",i,j,k);
b=b+1;
}
}
}
}
printf("以上搬磚方案共有:%d種\n",b);
}
完善後的代碼運作結果截圖: