ピーナッツ(一)
1229 ワード
説明
トムとジェリーは隣人で、ピーナッツが好きです.トムの信条は「ルールは常に強者が制定し、弱者は守る権利しかない」.Jerryは「頭は拳より力がある」と信じている.それ以外に、彼らはすべてとても聡明で、うん、少なくとも211工程大学の本科生のレベルがあります.メーデーの連休初日、トムとJerryは倉庫を散歩している間にピーナッツの山を見つけた(n粒で、nはゼロより1000以下).トムはピーナッツを分けて以下の規則を制定した:1、トムとJerryは交代で山の中からk粒のピーナッツを取り出して食べ、kはゼロより10より大きい.2、ルールの公平性を表示するために、Jerryは先取りまたは後取りを選択することができる.「最後のピーナッツは苦い」という定理に基づいて、Jerryは最後のピーナッツがトムに食べられることを望んでいる.Jerryは目的を達成するために先に取るべきか後に取るべきかを計算し、先に取るなら初めて何粒取るべきかを計算してください.
入力
本題には複数の測定例があり、各測定例の入力は整数nであり、ピーナッツの数を表す.n=0は入力が終了したことを示し,処理は不要である.
しゅつりょく
各測定例は単独の1行に整数を出力し、Jerryはまずピーナッツの粒数を取った.Jerryがトムを先に取ることを決めたら、0を出力します.
入力サンプル
1
2
3
0
出力サンプル
0
1
2
解決:
この問題の解決策は,Tom先選=0,jerry選の最後の一粒がTomを満たすものであれば多くある.
次は私のアルゴリズムです.
トムとジェリーは隣人で、ピーナッツが好きです.トムの信条は「ルールは常に強者が制定し、弱者は守る権利しかない」.Jerryは「頭は拳より力がある」と信じている.それ以外に、彼らはすべてとても聡明で、うん、少なくとも211工程大学の本科生のレベルがあります.メーデーの連休初日、トムとJerryは倉庫を散歩している間にピーナッツの山を見つけた(n粒で、nはゼロより1000以下).トムはピーナッツを分けて以下の規則を制定した:1、トムとJerryは交代で山の中からk粒のピーナッツを取り出して食べ、kはゼロより10より大きい.2、ルールの公平性を表示するために、Jerryは先取りまたは後取りを選択することができる.「最後のピーナッツは苦い」という定理に基づいて、Jerryは最後のピーナッツがトムに食べられることを望んでいる.Jerryは目的を達成するために先に取るべきか後に取るべきかを計算し、先に取るなら初めて何粒取るべきかを計算してください.
入力
本題には複数の測定例があり、各測定例の入力は整数nであり、ピーナッツの数を表す.n=0は入力が終了したことを示し,処理は不要である.
しゅつりょく
各測定例は単独の1行に整数を出力し、Jerryはまずピーナッツの粒数を取った.Jerryがトムを先に取ることを決めたら、0を出力します.
入力サンプル
1
2
3
0
出力サンプル
0
1
2
解決:
この問題の解決策は,Tom先選=0,jerry選の最後の一粒がTomを満たすものであれば多くある.
次は私のアルゴリズムです.
#include
#include
#include
using namespace std;
int getk(int n);
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{ if(n==0) break;
int k=getk(n);
printf("%d
",k);
}
return 0;
}
int getk(int n){
int k,j;
for(j=2;j<1000;j=j+2)
{
for(k=1;k<=10;k++)
{
if(n==1) return 0;
if(k*j>=n) return k;
}
}
}