『壹』 某人工資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;
}