自学内容网 自学内容网

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程序,它的主要功能是找出一种特定的数字组合,并输出这种组合以及它们的总和。以下是对这段代码的详细解释:

  1. 引入标准输入输出库:#include<stdio.h>

  2. 主函数开始:int main()

  3. 声明整数变量:int n; 以及 int i,m,x,b,l,q=0;

  4. 从标准输入读取一个整数,并存储在变量n中:scanf("%d",&n);

  5. 计算bl的值:

    • b=n/5;:将n除以5得到的结果赋值给b
    • l=n/2;:将n除以2得到的结果赋值给l
  6. 外层循环(由变量i控制):从b开始递减到1。

  7. 内层循环(由变量m控制):从l开始递减到1。

  8. 内内层循环(由变量x控制):从1开始递增到n-1

  9. 在内内层循环中,有一个判断语句:

    • if(i*5+m*2+x==n): 检查当前的三个数(由变量im, 和 x表示)相加是否等于n。如果等于,执行以下操作:
      • 输出这三个数以及它们的总和。
      • 将计数器q增加1。
  10. 最后,输出计数器q的值,表示满足条件的数字组合的数量。

  11. 程序返回0,表示正常结束。

总的来说,这个程序是在寻找一个特定的数字组合,其中第一个数字是n/5 - 1, 第二个数字是n/2 - 1, 第三个数字是1到n-1之间的任意数字,使得这三个数字的和等于原始的数字n。程序会输出所有满足条件的数字组合以及它们的总和,并告诉你有多少这样的组合。

 


原文地址:https://blog.csdn.net/m0_74316503/article/details/135439138

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!