C++题解:百钱买百鸡数量
生活随笔
收集整理的這篇文章主要介紹了
C++题解:百钱买百鸡数量
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
????????目錄
題目?
題解
題目?
- ?1000ms
- ?131072K
百錢買百雞問題:公雞五文錢一只,母雞三文錢一只,小雞三只一文錢,用?100?文錢買?100?只雞,公雞、母雞、小雞各買多少只?
本程序要求解的問題是:給定一個(gè)正整數(shù)?n,用?n?文錢買?n?只雞,問公雞、母雞、小雞各買多少只?
輸入格式
輸入一個(gè)正整數(shù)?n。
輸出格式
如果有解,輸出有多少種解(可以用正整數(shù)表示的解)。
如果無解,輸出"No Answer."。
數(shù)據(jù)范圍
1≤n≤1018。
輸出時(shí)每行末尾的多余空格,不影響答案正確性
要求使用「文件輸入輸出」的方式解題,輸入文件為?chicken.in,輸出文件為?chicken.out
樣例輸入
100樣例輸出
4題解:
知識(shí)點(diǎn):數(shù)學(xué)
分析: 由于價(jià)格是定值,做起來比較方便。我們?cè)O(shè)公雞x只,母雞y只,小雞z只,雞n只,則有:
????????????????
? ? ? ? ? ? ? ? ∴7x+4y=n
? ? ? ? ? ? ? ? ∴x=-n+4k? ? y=2n-7k
? ? ? ? ? ? ?所以我們只需要計(jì)算合法的k的數(shù)量了
? ? ? ? ? ? ? 易證:
代碼:
#include<iostream> #include<cstdio> using namespace std; typedef long long LL; LL n;//注意用long long int main(){freopen("chicken.in","r",stdin);freopen("chicken.out","w",stdout);cin>>n;LL l=n/4+(n%4!=0);//k的下限LL r=n*2/7;//k的上限if (r<l){puts("No Answer.");}else{cout<<r-l+1<<endl;//合法的k的數(shù)量}return 0; }總結(jié)
以上是生活随笔為你收集整理的C++题解:百钱买百鸡数量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IT桌面运维常识系列 - MDT
- 下一篇: 深入理解java虚拟机