浙大版《C语言程序设计(第3版)》题目集(编程题q41-q50)
习题4-5 换硬币 (20分)
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
#include "stdio.h"
int main()
{
int x;
int fen5=0,fen2=0,fen1=0;
int total =0,count=0;
scanf("%d",&x);
for(int k=x/5; k>0; k--){
for(int j=x/2;j>0;j--){
for(int i=x;i>0;i--){
if(i+2*j+5*k==x){
count++;
total=i+j+k;
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",k,j,i,total);
}
}
}
}
printf("count = %d",count);
return 0;
}
习题4-6 水仙花数 (20分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 本题要求编写程序,计算所有N位水仙花数。
#include "stdio.h"
#include "math.h"
int main()
{
int N,min,max;
int i,a,b;
int item,sum=0;
scanf("%d",&N);
min=pow(10,N-1);
max=pow(10,N)-1;
for(i=min;i<=max;i++){
a=i;
sum=0;
while(a>0){
b=a%10; //取末位
a/=10;
item=pow