0
点赞
收藏
分享

微信扫一扫

洛谷P5720 【深基4.例4】一尺之棰

栖桐 2022-02-26 阅读 34
c++

原题链接

题目描述

《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 a(a\le 10^9)a(a≤109)的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除 2,向下取整)。第几天的时候木棍会变为 1?

输入格式

输出格式

输入输出样例

输入 

输出 


第一版代码:

#include <iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	for(int i=1;i<10000000;)    
	{
		a=a/2;    //被一分为二后剩下的一节长度
		++i;
		if(a==1)	
		{
			cout<<i<<endl;    //i用于统计总共执行了几次这个操作
			break;            //a等于1时跳出程序
		}
	}
	
	return 0;
}

测试结果:

有一个未AC?!

WA数据:

坑点:要判断如果直接输入就是1的情况。 


第二版代码:

#include <iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	if (a==1)	cout<<"1"<<endl;    //判断如果输入就为1的情况
	else
	{
		for(int i=1;i<10000000;)
		{
			a=a/2;
			++i;
			if(a==1)	
			{
			cout<<i<<endl;
			break;
			}
		}
	}
	return 0;
}

 

举报

相关推荐

0 条评论