某人想将一张面值为100元的人民币兑换成5元,1元,和0.5元面值的纸币,但要求零钱总数为100张,且每种面值纸币至少一张.var i,j,a:integer;beginfor i:=1 to 20 dofor j:=1 to 100 dofor a:=1 to 200 doif (i+j+a=100) and (

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 19:08:50
某人想将一张面值为100元的人民币兑换成5元,1元,和0.5元面值的纸币,但要求零钱总数为100张,且每种面值纸币至少一张.var i,j,a:integer;beginfor i:=1 to 20 dofor j:=1 to 100 dofor a:=1 to 200 doif (i+j+a=100) and (

某人想将一张面值为100元的人民币兑换成5元,1元,和0.5元面值的纸币,但要求零钱总数为100张,且每种面值纸币至少一张.var i,j,a:integer;beginfor i:=1 to 20 dofor j:=1 to 100 dofor a:=1 to 200 doif (i+j+a=100) and (
某人想将一张面值为100元的人民币兑换成5元,1元,和0.5元面值的纸币,但要求零钱总数为100张,且每种面值纸币至少一张.
var i,j,a:integer;
begin
for i:=1 to 20 do
for j:=1 to 100 do
for a:=1 to 200 do
if (i+j+a=100) and (i*5+j*1+a*0.5=100) then writeln(i,' ',j,' ',a);
end.
解法已给出,

某人想将一张面值为100元的人民币兑换成5元,1元,和0.5元面值的纸币,但要求零钱总数为100张,且每种面值纸币至少一张.var i,j,a:integer;beginfor i:=1 to 20 dofor j:=1 to 100 dofor a:=1 to 200 doif (i+j+a=100) and (
没有验证你的程序,应该没有问题,如果我写的话,下面这句:
if (i+j+a=100) and (i*5+j*1+a div 2=100) then writeln(i,' ',j,' ',a);
我会修改为:
if (i+j+a=100) and (i*5+j*1+a*0.5=100) then writeln(i,' ',j,' ',a);
因为变量都是整数类型,尽量避免浮点数据类型,特别是还有相等判断.
程序是思路就是多重循环,i、j、a三个变量分别表示5元、1元、5毛的张数,分别的取值范围为1..20、1..100、1..200,使用三重循环可以完整的对每一张情况进行枚举,就是IF语句会执行40万次,每次执行的时候i、j、a的值分别在所有的可能的范围内取一次.
IF判断是否满足张数100张、金额100元,满足就输出,作为解答.
关键是要理解FOR循环,建议你运行一下下面的两个简单代码,你就知道FOR循环的功能了:
program exp1;
var i;
begin
for i:=1 to 20 do writeln('i=',i);
end.
你输入电脑运行一下,你会看见结果是下面这样的20次:
i=1
i=2
.
i=20
例子程序2:
program exp1;
var i,j;
begin
for i:=1 to 3 do
for j:=1 to 5 writeln('i=',i,',j=',j);
end.
希望你先画一下输出结果,然后上机测试一下,看看是不是下面的结果:
i=1,j=1
i=1,j=2
i=1,j=3
i=1,j=4
i=1,j=5
i=2,j=1
.
i=3,j=5
现在再回头来理解的三重循环就容易了吧.

若将一张100元的人民币兑换成10元和5元两种面值的人民币共12张,则 其中10元的人民币有几张 某人想将一张面值为100元的人民币兑换成5元,1元,和0.5元面值的纸币,但要求零钱总数为100张,且每种面值纸币至少一张.var i,j,a:integer;beginfor i:=1 to 20 dofor j:=1 to 100 dofor a:=1 to 200 doif (i+j+a=100) and ( 编程:用穷举法.题目是某人想将手中一张面值100元的人民币换成5元、1元和0.5 元面值的票子,但要求100元 某商店要把面值100元的一张人民币换成零钱,现有足够面值为50元,20元,10元的人民币,则共有几种换法? 要把一张面值100元的人民币换成零钱,现有足够的面值为20元、10元地人民币,那么共有多少种换法列方程 将一张十元人民币兑换成若干张1元 2元 5元的人民币,有几种兑换方法 C语言编程:某人想将手中一张面值100元的人民币换成5元、1元和0.5元面值的票子,但要求100元换以上的零钱共100张,且要求每种不少于1张,问有哪几种组合? 把一张面值为50元的人民币换成10元5元的人民币,共有多少种换发? Pascal将手中N张面值100元的人民币换成10元、5元、2元和1元面值的钱.要求正好换M张小面值人民币,且每种面值至少一张.问:有几种换法?输入一行:整数n和m,分别代表有n张面值100元的人民币和 要把一张面值为十元的人民币换成零钱,现有足够的面值为1元,2元的人民币,那么共有多少种换法? 要把面值为10元的一张人民币换成零钱.现有足够的面值为2元、1元的人民币,则有几种换法? 要把一张面值为5元的人民币换成零钱,现有足够的面值为2元1元5角的人民币那么共有几种换法? 要把一张面值为10元的人民币换成零钱,现在有足够的人民币面值为1元、2元,则共有换法几种? 要把一张面值为10元的人民币换成零钱,现在有足够的人民币面值为1元、5元,则共有换法几种? 把一张面值50元的人民币换成10元.5元的人民币,有几种换法 C语言求算法!将一张面值为100元的人民币等值换成5元、1元零钞共40张,要求每种零钞不少于1张,问5元和1元的零钞各多少张? 张老师欲把一张面值为100元的人民币换成零钱,现有足够的面值为20元和10元的人民币,则有多少种解法? 要把一张面值为10远的人民币换成零钱,先有足够的面值为2元,一元的人民币,那么有__种换法