c语言发工资现金2178元,用100元,50元,20元,10元,5元,和1元的票子,问各多少张
6个回答
展开全部
一个解:
21张100 1张50 1张 20 1张5块 3张1块
所有解:
int main()
{
int money = 2178;
int a,b,c,d,e,f;
for(a=0;a*100<=money;a++)
for(b=0;a*100+b*50<=money;b++)
for(c=0;a*100+b*50+c*20<=money;c++)
for(d=0;a*100+b*50+c*20+d*10<=money;d++)
for(e=0;a*100+b*50+c*20+d*10+e*5<=money;e++)
{
f = money-(a*100+b*50+c*20+d*10+e*5);
printf("100元%d张\t50元%d张\t",a,b);
printf("20元%d张\t10元%d张\t",c,d);
printf("5元%d张\t1元%d张\t",e,f);
puts("");
}
return 0;
}
展开全部
楼上的解太复杂 很简单的问题这么多for循环
int money = 2178;
int m100 = 2178 /100; //100元钞票的张数
printf("100元%d张",m100);
money = 2178 % 100; //去余数 去掉100元 剩下来的钱
int m50 = money / 50; //
printf("50元%d张",m50);
money = money % 50;
int m20 = money /20;
printf("20元%d张",m20);
money = money % 20;
int m10 = money /10 ;
printf("10元%d张",m10);
money = money % 10;
int m1 = money / 1;
printf("1元%d张",m1);
结果:跟楼上的差不多 只是一元的是3张
int money = 2178;
int m100 = 2178 /100; //100元钞票的张数
printf("100元%d张",m100);
money = 2178 % 100; //去余数 去掉100元 剩下来的钱
int m50 = money / 50; //
printf("50元%d张",m50);
money = money % 50;
int m20 = money /20;
printf("20元%d张",m20);
money = money % 20;
int m10 = money /10 ;
printf("10元%d张",m10);
money = money % 10;
int m1 = money / 1;
printf("1元%d张",m1);
结果:跟楼上的差不多 只是一元的是3张
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个题有多种答案,楼主是要所有的排列方式么?
首先求出各自的最多需要有多少张:int my100=2178/100,my50=2178/50,my20=20,my10=2178/10,my5=2178/5,my1=2178;
然后计算所有组合:
int m100=0,m50=0,m20=0,m10=0,m5=0,m1=0;
for(m100=0;m100<=my100;m100++)
{
for(;m50<=my50;m50++)
{
for(;m20<=my20;m20++)
{
for(;m10<=my10;m10++)
{
for(;m5<=my5;m5++)
{
for(;m1<=my1;1++)
{
if(100*m100+50*m50+20*m20+10*m10+5*m5+m1 ==2178)
printf("100元:%d,50元:%d,20元:%d,10元:%d,5元:%d,1元:%d\n",m100,m50,m20,m10,m5,m1);
}
}
}
}
}
}
希望能帮助你。
首先求出各自的最多需要有多少张:int my100=2178/100,my50=2178/50,my20=20,my10=2178/10,my5=2178/5,my1=2178;
然后计算所有组合:
int m100=0,m50=0,m20=0,m10=0,m5=0,m1=0;
for(m100=0;m100<=my100;m100++)
{
for(;m50<=my50;m50++)
{
for(;m20<=my20;m20++)
{
for(;m10<=my10;m10++)
{
for(;m5<=my5;m5++)
{
for(;m1<=my1;1++)
{
if(100*m100+50*m50+20*m20+10*m10+5*m5+m1 ==2178)
printf("100元:%d,50元:%d,20元:%d,10元:%d,5元:%d,1元:%d\n",m100,m50,m20,m10,m5,m1);
}
}
}
}
}
}
希望能帮助你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-06-03
展开全部
你好,是21张100元,1张50元,2张10元,1张5元,3张1元,总共27张。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种问题有多种解,下面代码求得最少张数解。
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
int y[6]={100,50,20,10,5,1},m,i;
printf("y100\ty50\ty20\ty10\ty5\ty1\n");
for(m=2178,i=0;i<5;i++){
printf("%d\t",m/y[i]);
m%=y[i];
}
printf("%d\n",m/y[i]);
}
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
int y[6]={100,50,20,10,5,1},m,i;
printf("y100\ty50\ty20\ty10\ty5\ty1\n");
for(m=2178,i=0;i<5;i++){
printf("%d\t",m/y[i]);
m%=y[i];
}
printf("%d\n",m/y[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询