九度oj-1031-xxx定律

来源:互联网 发布:网络买鞋子怎么买 编辑:程序博客网 时间:2024/06/07 11:53
题目描述:
    对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。
    请计算需要经过几步才能将n变到1,具体可见样例。
输入:
    测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1<=n<=10000)
输出:
    对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。
样例输入:
310
样例输出:
50

#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表情里的那个赞的小熊)

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

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

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

下一题吧。



原创粉丝点击