1.100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马二匹驮1担。试编写程序计算大、中、小马数目
int i = 0;//大马
int j = 0;//中马
int k = 0;//小马
for(i = 0;i < 34;i ++)
{
for(j = 0;j < 51;j ++)
{
k = 100 - i - j;
if(k % 2 == 0)
{
if(3 * i + j * 2 + k / 2 == 100)
printf("大马:%d 中马:%d 小马:%d\n",i,j,k);
}
}
}
2.用1元人民币兑换成1分,2分和5分硬币,要求应换若干2分的,还应该换若干1分的,且1分的个数是2分个数的10倍,其余的换成5分的,问每种硬币换多少个?
这道题值得思考的是应该设置2分的个数变量作为总循环变量,如果设置1分的个数变量作为总循环,要考虑个数是否是10的整数倍,写起来要多写1分个数是2分个数的取余数为0且取模为10,很麻烦
int i = 0;//1元
int j = 0;//2元
int k = 0;//5元
for(j = 0;j <= 50;j ++)
{
i = j * 10;
for(k = 0;k <= 20;k ++)
{
if(i + 2 * j + 5 * k == 100)
printf("1分:%d,2分:%d,5分:%d\n",i,j,k);
}
}
3.爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在1到N内,有多少个数能满足?
int i = 0;//代表步数
while(!((i % 2 == 1) && (i % 3 == 2) && (i % 5 == 4) && (i % 6 == 5) && (i % 7 == 0)))
i ++;
printf("台阶共有:%d",i);
4.马克思手稿中的趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请编程计算男人、女人和小孩各有几人?
这道题用传统的3层嵌套for循环,即设置男人,女人,小孩3个循环变量求解没有问题,这道题简化在列2个关系方程组,之后两式子作差的过程中,小孩的变量被减没,只剩下男人的数量和女人的数量的关系
int i = 0;//男人
int j = 0;//女人
int k = 0;//小孩
int count = 0;
for(i = 0;i <= 10;i ++)
{
j = 20 - 2 * i;
k = 30 - i - j;
if(3 * i + 2 * j + k == 50)
printf("%2d: %d %d %d\n",++ count,i,j,k);
}
来源:CSDN
作者:智群王
链接:https://blog.csdn.net/qq_40839934/article/details/104101613