解题思路:
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++代码)浏览:865 |
简单的a+b (C语言代码)浏览:721 |
字符串对比 (C语言代码)浏览:1398 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:748 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1195 |
【简单计算】 (C语言代码)浏览:622 |
WU-图形输出 (C++代码)浏览:801 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1090 |
愚蠢的摄影师 (C++代码)浏览:934 |