有假币
时间: 1ms 内存:64M
描述:
居然有假币!!!
事情是这样的,现在猪肉涨了,但是农民的工资却不见涨啊,没钱怎么买猪肉啊。渊子这就去买猪肉,结果找来的零钱中有假币!!!可惜渊子一不小心把它混进了一堆真币里面去了。现在知道假币的重量比真币的质量要轻。给你一个天平,请用最快的时间把那个可恶的假币找出来。
输入:
1≤n≤230,输入0结束程序。
输出:
最少要称几次一定能把那个假币找出来。
示例输入:
3
12
0
示例输出:
1
3
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
long long count1=0;
int cp(long long n)
{
count1++;
if(n<=3)return 0;
if(n%3==0)cp(n/3);
else cp(n/3+1);
}
int main()
{
long long n,s;
while(scanf("%lld",&n),n!=0)
{
cp(n);
printf("%lld\n",count1);
count1=0;
}
return 0;
}
参考答案(时间最优[0]):
#include<iostream>
using namespace std;
int main()
{
int n,a,b,i=1;
while((cin>>n)&&(n!=0))
{while(n>3)
{ a=n/3;
b=n%3+a;
if(a>b)
{ n=a;}
else
{ n=b;}
i++;
}
cout<<i;
cout<<endl;}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。