项目1-小明借书
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
代码
/**
*Copyright @2018,优快云学院
*All rights reserved.
*文件名称:main.c
*作 者:袁生
*完成日期:2018年9月18日
*版 本 号:v1.0
*问题描述:【项目1-小明借书】
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
提示:本问题实际上是一个排列问题,即求从5个中取3个进行排列的方法的总数。首先对五本书从
1至5进行编号,然后使用穷举的方法。假设三个人分别借这五本书中的一本,当三个人所借的书的编号
都不相同时,就是满足题意的一种借阅方法。
*/
#include <stdio.h>
int main()
{
int a,b,c,count=0;
for (a=1; a<=5; a++) //五本书编号1-5
for (b=1; b<=5; b++)
for (c=1; c<=5; c++)
{
if ((a==b)||(b==c)||(a==c))
continue;
else
{
count++;
printf("a=%d\t,b=%d\t,c=%d\n",a,b,c);
}
}
printf("%d",count);
return 0;
}
执行结果
错误代码
for (a=1; a<=5; a++) //五本书编号1-5
for (b=1; a!=b&&b<=5; b++)
for (c=1; a!=c&&b!=c&&c<=5; c++)
{
count++;
printf("a=%d\t,b=%d\t,c=%d\n",a,b,c);
}
分析:直接错过b=1或者c=1等情况,。abc必须要遍历1-5,再从遍历中选择满足条件的数据
项目2-水仙花数
对于三位数字,若各位数字立方和等于该数,该数就是水仙花数。如153:153=13+53+33
代码
/**
*Copyright @2018,优快云学院
*All rights reserved.
*文件名称:main.c
*作 者:袁生
*完成日期:2018年9月18日
*版 本 号:v1.0
*问题描述:【项目2-水仙花数】
对于三位数字,若各位数字立方和等于该数,该数就是水仙花数。如153:153=13+53+33
*/
#include <stdio.h>
int main()
{
int a=1,b=0,c=0,d,e;
for(a=1; a<=9; a++)
for(b=0; b<=9; b++)
for(c=0; c<=9; c++)
{
d=100*a+10*b+c;
e=a*a*a+b*b*b+c*c*c;
if(d==e)
printf("%d\t", d);
}
return 0;
}
执行结果
项目3-鸡兔共笼
鸡兔共有30只,脚共有90只,问鸡兔各有多少?
代码
/**
*Copyright @2018,优快云学院
*All rights reserved.
*文件名称:main.c
*作 者:袁生
*完成日期:2018年9月18日
*版 本 号:v1.0
*问题描述:【项目3-鸡兔共笼】
鸡兔共有30只,脚共有90只,问鸡兔各有多少?
*/
#include <stdio.h>
int main ()
{
int i,j;
for (i=0;i<=30;i++)
{
j=30-i;
if (2*i+4*(30-i)==90)
printf("i=%d\t j=%d",i,j);
}
return 0;
}
执行结果
项目4-换分币
用一元人民币兑换成1分、2分和5分硬币,有多少种不同的兑换方法?请输出所有可能的方案。
提示:根据题意设i,j,k分别为兑换的1分、2分、5分硬币的枚数,则i,j,k的值应满足:i+j2+k5=100,根据取值范围构造循环解题即可。
代码
/**
*Copyright @2018,优快云学院
*All rights reserved.
*文件名称:main.c
*作 者:袁生
*完成日期:2018年9月18日
*版 本 号:v1.0
*问题描述:【项目4-换分币】
用一元人民币兑换成1分、2分和5分硬币,有多少种不同的兑换方法?请输出所有可能的方案。
*/
#include <stdio.h>
int main ()
{
int i,j,k,count=0;
for (i=0; i<=100; i++)
for