解题思路:
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分
13 人评分
#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二级辅导-阶乘数列 (C++代码)浏览:1896 |
C语言训练-阶乘和数* (C++代码)(直接输出样例hhhh)浏览:1152 |
人见人爱A+B (C语言代码)浏览:764 |
你的开发任务 (C++代码)写到一半,等有心情回来补全浏览:879 |
C语言训练-排序问题<2> (C++代码)(sort函数)浏览:1566 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:570 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:448 |
用筛法求之N内的素数。 (C语言代码)浏览:645 |
DNA (C语言描述,蓝桥杯)浏览:1548 |
简单的a+b (C语言代码)浏览:478 |