您现在的位置是:主页 > news > linux网站建设技术指南 pdf/店铺seo是什么意思

linux网站建设技术指南 pdf/店铺seo是什么意思

admin2025/6/6 15:02:17news

简介linux网站建设技术指南 pdf,店铺seo是什么意思,网站建设报告内容,项目经理岗位职责题目 百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100 只鸡,公鸡、母鸡、小鸡各买多少只? 本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 …

linux网站建设技术指南 pdf,店铺seo是什么意思,网站建设报告内容,项目经理岗位职责题目 百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100 只鸡,公鸡、母鸡、小鸡各买多少只? 本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 …

题目

百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100 只鸡,公鸡、母鸡、小鸡各买多少只?

本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n只鸡,问公鸡、母鸡、小鸡各买多少只?
输入格式

输入一个正整数 n。
输出格式

如果有解,输出有多少种解(可以用正整数表示的解)。

如果无解,输出"No Answer."。
数据范围

1≤n≤1018

输出时每行末尾的多余空格,不影响答案正确性
样例输入

100

样例输出

4

思路

1.根据要求n钱买n鸡,所以当买1公鸡,就需要6小鸡凑成7钱买7鸡,每当买1母鸡,就需要3小鸡凑成4钱买4鸡,也就是说,需要用4钱和7钱去组合买鸡,才能满足n钱买n鸡
2.那么根据上述,看看n为几就满足?

n=1 不行
n=2 不行
n=3 不行
n=4=4
n=5 不行
n=6 不行
n=7=7
n=8=4+4
n=9 不行
n=10 不行
n=11=4+7
n=12=4+4+4
n=13 不行
n=14=7+7
n=15=4+4+7
n=16=4+4+4+4
n=17 不行
n=18=7+7+4
n=19=4+4+4+7
n=20=4+4+4+4+4
n=21=7+7+7

由上面可以看出,17是最后一个不行的数,因此可以先判断n是否符合条件

3.满足的话一定是有一种方案的,那么怎样就可以多一种方案?已知n是4和7组成的,那么多一种就是把4个7换为7个4或者反过来,因此每当n有一个28,就多一种替换方案

4.但是要注意,不是有几个28就可以全部替换
比如100=28∗3+16100=28*3+16100=283+1616=4∗416=4*416=44,都可以凑出来,所以有3个28替换,方案就是1+3种
比如29=28+1,去掉一个28后剩1,是凑不出来的,所以这个28不可以拿出来替换,29只能是3∗7+2∗43*7+2*437+24一种方案
因此还需要看去掉28后的数是否满足,如果不满足,就要放回去一个28(根据2,大于28的一定可以凑出来)也就是方案减一,这样才能满足

代码

#include <bits/stdc++.h>using namespace std;
typedef long long ll;//int a={0,4,7,8,11,12,14,15,16,18,19,20,21,22,23,24,25,26,27,28...};
bool no(ll ans)
{if(ans==1||ans==2||ans==3||ans==5||ans==6||ans==9||ans==10||ans==13||ans==17)return true;elsereturn false;
}
int main()
{ios::sync_with_stdio(false);ll n;cin>>n;ll sum=n/28; //有可能替换数,即多余方案ll ans=n%28; //剩余数if(no(n))//n本身无解cout<<"No Answer.";else{if(no(ans))//剩余数无解sum--;//放回一个28,方案减一cout<<sum+1;//sum是多的方案,要加必有的一个方案}}