当前位置:首页 » 编程语言 » c语言算钱的张数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言算钱的张数

发布时间: 2022-09-27 17:23:10

‘壹’ 某人工资x元,求出各种票额钞票总张数最少的方案。c语言问题,急用

s=x/100,可以求出有100的张数
x=x%100,然后将余数再赋给x

s+=x/50,求出50的张数,再加上100的张数
x=x%50,然后将余数再赋给x

依次类推......

‘贰’ C语言中输入任意正整数元钱 然后然后转换成多少张100 多少张50 多少张20 10 5 2 1 ,要求钱的张数要最小

#include<stdio.h>

void greedyMoney(int m[],int k,int n);

int main(void)
{
int money[] = {100,50,20,10,5,2,1};
int k,change;
k = sizeof(money)/sizeof(money[0]);
scanf("%d",%change);
greedyMoney(money,k,change);
system("PAUSE");
}

/*
* m[]:存放可供找零的面值,降序排列
* k:可供找零的面值种类数
* n:需要找零数
*/
void greedyMoney(int m[],int k,int n)
{
int i;
for(i=0;i<k;i++)
{
while(n>=m[i] && n>0)
{
printf("%d.",m[i]);
n = n-m[i];
}
}
printf("\n");

}

‘叁’ C语言,计算各类币值纸张问题,输入人民币数额,统计100,50,20,10,5,1元的币值各多少张。

int num100=0,num50=0,num20=0,num10=0,num5=0,num1=0;
int money=0;
scanf("%d",&money);
num100=money/100;
money=money%(num100*100);
if (money>=50){
num50=money/50;
money=money%(num50*50);
}
if (money>=20){
num20=money/20;
money=money%(num20*20);
}
if (money>=10){
num10=money/10;
money=money%(num10*10);
}
if (money>=5){
num5=money/5;
money=money%(num5*5);
}
num1=money;
printf("100元有%d张,50元有%d张,20元有%d张,10元有%d张,5元有%d张,1元有%d张\n",num100,num50,num20,num10,num5,num1);

‘肆’ c语言编程,输入金额,输出并显示用100,50,20,10,5,1块钱 各需要多少张,优先使用金额

#include<stdio.h>
intmain()
{
inttype[]={100,50,20,10,5,1},nu=6;
intcash,i;
scanf("%d",&cash);
for(i=0;i<nu;++i){
printf("%d:%d ",type[i],cash/type[i]);
cash%=type[i];
}
return0;
}

程序执行结果如下

‘伍’ c语言 求用币值为5元,10元,20元,50元,100元的最少张数表示一个数

如何币值是任意的话,这个问题就会退化成为np问题。但是由于规定了特定的币值,我们就可以根据币值的特殊性编写一个有效的程序。

设现在需要兑换的金额时m,币值为5元,10元,20元,50元,100元的张数分别是x1,x2,x3,x4,x5。若要兑换最小的张数N,则
x1={0,1}//若x1>=2则可以利用x2=x1*2来取得N。可以用数学归纳法进行//证明
x2={0,1}
x3={0,2}
x4={0,1}
x5=非负整数

根据以上思想,就可以求出相应的程序。如下
#include <stdio.h>
#include "stdlib.h"
int main(){
int m,N=0,i;
int x[5];
int un[5]={5,10,20,50,100};
printf("Please input the number:\n");
scanf("%d",&m);
if((m%5)!=0)
printf("m can not be changed!\n");
for(i=4;i>=0;i--){
x[i]=m/un[i];
m=m%un[i];
N=N+x[i];
}
printf("It needs %d at least!\n",N);
for(i=0;i<5;i++){
printf("x%d=%d:%d\n",i,un[i],x[i]);
}
return 1;
}

‘陆’ 怎么用C语言求把100元换成20元,10元,5元的纸币.要求每种纸币至少有一张。

#include<stdio.h>

int main()

{int a,b,c,n=0;

printf("20元 10元 5元 ");

for(a=1;a<5;a++)

for(b=1;b<(100-20*a)/10;b++)

{c=(100-20*a-10*b)/5;

printf("%2d %2d %2d ",a,b,c);

n++;

}

printf("共%d种方案 ",n);

return 0;

}

‘柒’ C语言编程题:现有273元,要用100元、50元、10元、1元币值的人民币组合,求最少张数的组合。

尾数为3至少3张一元的,关键在于270.多用大面额少用小面额。100有两种可能一种是2一种是1.用1的话是1323用2的话是2123.肯定用2+1+2+3=8

‘捌’ c语言发工资现金2178元,用100元,50元,20元,10元,5元,和1元的票子,问各多少张

一个解:

21张100 1张50 1张 20 1张5块 3张1块

所有解:

intmain()
{
intmoney=2178;
inta,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张 50元%d张 ",a,b);
printf("20元%d张 10元%d张 ",c,d);
printf("5元%d张 1元%d张 ",e,f);
puts("");
}
return0;
}