解题思路:
1.根据百钱百鸡问题,百钱买到一百只鸡,输出方法;
2.这里变为任意钱买钱,只要三种面值的钱都买到,就是成立的买法;
3.每种钱都要买到,故每种钱的初始张数都为1;
4.把有的钱money,先买面值为5的钱,所剩余的钱为:moneyleft_forliangyuan=money-wuyuan*5;
(wuyuan:面值为5的钱的张数)
5.把剩余的钱买面值为2的钱,所剩余的钱为:moneyleft_foryiyuan=moneyleft_forliangyuan-liangyuan*2;
(liangyuan:面值为2的钱的张数)
6.最后把剩下的钱买面值为1的钱,(注意:至少有一张1元),故当moneyleft_foryiyuan>=1时,整个买法成立;
参考代码:
#include<stdio.h> int main() { int money,approach=0; while(scanf("%d",&money)!=EOF) { approach=0; for(int wuyuan=1;wuyuan<=money/5;wuyuan++) { int moneyleft_forliangyuan=money-wuyuan*5; for(int liangyuan=1;liangyuan<=moneyleft_forliangyuan/2;liangyuan++) { int moneyleft_foryiyuan=moneyleft_forliangyuan-liangyuan*2; if(moneyleft_foryiyuan>=1) approach++; } } printf("%d\n",approach); } return 0; }
别忘点赞哦-.-
0.0分
14 人评分
#include<iostream> using namespace std; int main() { int a,i,j,k,s=0; cin>>a; for(i=1;i<=a/5;i++) for(j=1;j<=a/2;j++) { if(a-i*5-j*2>0) s++; } cout<<s; }也可以直接后面用所有的钱减五块的和两块的还大于1的
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:562 |
字符串的输入输出处理 (C语言代码)浏览:977 |
C语言训练-自由落体问题 (C语言代码)浏览:637 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:426 |
循环入门练习6 (C语言代码)浏览:997 |
1054题解浏览:489 |
1035 题解浏览:838 |
陶陶摘苹果2 (C语言代码)浏览:619 |
C二级辅导-统计字符 (C语言代码)浏览:687 |
多输入输出练习2 (C语言代码)浏览:1678 |