PTA——换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
#include<stdio.h>
int main()
{
int n;
int i,m,x,b,l,q=0;
scanf("%d",&n);
b=n/5;
l=n/2;
for(i=b;i>0;i--)
{
for(m=l;m>0;m--)
{
for(x=1;x<n;x++)
{
if(i*5+m*2+x==n)
{
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,m,x,i+m+x);
q++;
}
}
}
}
printf("count = %d",q);
return 0;
}
这段代码是一个C程序,它的主要功能是找出一种特定的数字组合,并输出这种组合以及它们的总和。以下是对这段代码的详细解释:
-
引入标准输入输出库:
#include<stdio.h>
-
主函数开始:
int main()
-
声明整数变量:
int n;
以及int i,m,x,b,l,q=0;
-
从标准输入读取一个整数,并存储在变量
n
中:scanf("%d",&n);
-
计算
b
和l
的值:b=n/5;
:将n
除以5得到的结果赋值给b
。l=n/2;
:将n
除以2得到的结果赋值给l
。
-
外层循环(由变量
i
控制):从b
开始递减到1。 -
内层循环(由变量
m
控制):从l
开始递减到1。 -
内内层循环(由变量
x
控制):从1开始递增到n-1
。 -
在内内层循环中,有一个判断语句:
if(i*5+m*2+x==n)
: 检查当前的三个数(由变量i
,m
, 和x
表示)相加是否等于n
。如果等于,执行以下操作:- 输出这三个数以及它们的总和。
- 将计数器
q
增加1。
-
最后,输出计数器
q
的值,表示满足条件的数字组合的数量。 -
程序返回0,表示正常结束。
总的来说,这个程序是在寻找一个特定的数字组合,其中第一个数字是n/5 - 1
, 第二个数字是n/2 - 1
, 第三个数字是1到n-1
之间的任意数字,使得这三个数字的和等于原始的数字n
。程序会输出所有满足条件的数字组合以及它们的总和,并告诉你有多少这样的组合。
原文地址:https://blog.csdn.net/m0_74316503/article/details/135439138
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!