九度oj-1031-xxx定律

题目描述:
    对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。
    请计算需要经过几步才能将n变到1,具体可见样例。
输入:
    测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1<=n<=10000)
输出:
    对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。
样例输入:
3
1
0
样例输出:
5
0

#include<stdio.h>

int main(){
	
	int n;

	while(scanf("%d",&n)!=EOF){
		int count=0;
		int flag=0;

		while(1){
			if(n==0) return 0;
			else if(n==1){
				switch (flag){
				case 0: printf("%d\n",flag);
						break;
				case 1:printf("%d\n",count);
						break;
				}
				break;
			}


			if(n%2==0){
				n/=2;
				count++;
				flag=1;
			}else{
				n=3*n+1;
				n/=2;
				count++;
				flag=1;
			}

		}
	}

	return 0;
}

昨晚收工的时候,打开了这题。说在回去的路上可以想清楚,然后回去就写了。不知道是我腿太长(逃。。。)还是路太短,似乎还没想就到了。

晚上躺床上了,再想一想早上起来就写了,可我这个脑壳,咋就思绪前进不了呢。于是用在手机上写了下来。

这个程序的结构 用了上一题的结构,我都忘记switch case和break的关系了。

话说我觉得有点奇怪啊,为什么switch case的设定是只有没有break就会一直执行,那还要后面的case干嘛。好吧,我现在才思考这个问题真的反射福(逃。。。)太长了。

啧啧啧。

今天我的朋友跟我讲说“我真心希望你不管是选择升学还是工作,都能去更厉害的层次。”(后面还跟了一个qq表情里的那个赞的小熊)

突如其来的真心话,让我愣了一下。然后是觉得温暖。

上一次他叮嘱(算是叮嘱吧)我,还是这个学期开学,刚刚实训回来,朋友突然说要来找我玩,在去吃饭的路上,突然跟我讲说你要好好学习哦。

我当时开心的答应着,之后就抛在了脑后,啧啧啧。

下一题吧。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值