当前位置: 代码迷 >> C语言 >> [求助]编程题
  详细解决方案

[求助]编程题

热度:215   发布时间:2006-12-16 23:44:11.0
[求助]编程题
换硬币,把一元人民币换成5分,2分,1分的硬币,有多少种办法?

输入一行字符,分别统计出大写英文字母,小写英文字母,数字,空格,和其它字符的个数。

一天,一只猴子摘下了一堆挑子,当即吃去了一半,觉得不过瘾,又多吃了2个,第二天接着吃了前一天剩下的一半,后又多吃了两个,以后每天如此,。到第九天,小猴子去吃时,只剩下一个桃子了。问,小猴子共摘了多少桃子。

搜索更多相关的解决方案: 人民币  猴子  硬币  数字  

----------------解决方案--------------------------------------------------------
换硬币,把一元人民币换成5分,2分,1分的硬币,有多少种办法?
一个算法 不知道对不对
main()
{
int x,y;
for (x=0;x<100;x+=5)
for (y=0;y<100;y+=2)
{
if(x+y<=100)
printf("%d",x+y);
}
return 0;
}

----------------解决方案--------------------------------------------------------
都是老题了
以前的帖子都有
1:
http://bbs.bc-cn.net/dispbbs.asp?boardid=5&replyid=357604&id=100598&page=1&skin=0&Star=1

----------------解决方案--------------------------------------------------------
第一
#include<stdio.h>
main()
{
int x,y,z,sum=0;
for(x=0;x<=100/5;x++)
for(y=0;y<=(100-x)/2;y++)
sum++;
printf("sum=%d\n",sum);
}
----------------解决方案--------------------------------------------------------
第二个:解法1:
#include<stdio.h>
main()
{
int i,j,sum=1;
for(i=1;i<10;i++)//还有九天
{
j=(sum+1)*2;//第九天有四个,八天有十个---
sum=j;
}
printf("%d\n",sum);
}
解法2:
#include <stdio.h>
int peach (int );
int main (void)
{
int days,sum;
days=1;
sum=peach ( days);
printf ("%d\n",sum);
return 0;
}
int peach (int n)
{
if (10==n)
return 1;
else
return ((peach (n+1)+1)*2) //前一天的桃子数
}

以前有人写过:http://bbs.bc-cn.net/dispbbs.asp?boardid=5&replyid=239356&id=80658&page=1&skin=0&Star=1
----------------解决方案--------------------------------------------------------

换钱
main()
{int a,b,c,n=0;
for(a=1;a<20;a++)
for(b=1;b<50;b++)
for(c=1;c<100;c++)
if(5*a+2*b+c==100)
n++;
printf("n=%d",n) ;
getch();
return 0;
}


----------------解决方案--------------------------------------------------------
5楼版主的程序中好象只多吃了一个啊,是不?
----------------解决方案--------------------------------------------------------
第二题,统计问题:
#include "stdio.h"
#define N 100

main()
{ int a,b,c,d,e,i=0;
char ch[N];
printf("输入一个任意字符串,字符个数少于100");
while((ch[i]=getchar())!='\n')
{ if(ch[i]>="A"&& ch[i]<="Z") a++; /*统计大写字母个数*/
else if(ch[i]>="a"&& ch[i]<="z") b++; /*统计小写字母个数*/
else if(ch[i]>="0"&& ch[i]<="9" c++; /*统计数字个数*/
else if(ch[i]==" ") d++; /*空格数*/
else e++; /*其它字符个数*/
i++;
}
printf("A-Z:%d\n",a);
printf("a-z:%d\n",b);
printf("1-9:%d\n",c);
printf("space:%d\n",d);
printf("other:%d\n",e);
getch();
}
随便写的未调试,不知可否,感觉应该还有更好的算法,望各位大虾指点哦.先谢了.
----------------解决方案--------------------------------------------------------

不好意思,上面程序中a,b,c,d e都赋初值0,字符都要用单引号,写错了


----------------解决方案--------------------------------------------------------
http://hnrjliuwu.2008red.com 很多视频教程
还有很多经典编程题
----------------解决方案--------------------------------------------------------
  相关解决方案