有假币

有假币

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注