Manchester


私信TA

用户名:wenyajie

访问量:310744

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 62412
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
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的
2022-03-18 21:53:32
因为是大佬啊
2021-05-26 19:53:31
这个人是真的强!!!
2021-05-07 16:59:30
你为什么这么强
2020-12-07 14:08:36
你为什么能这么强?
2018-10-12 22:41:56
  • «
  • 1
  • »