0
点赞
收藏
分享

微信扫一扫

实验06for与do~while循环---7-01 验证一个著名数学猜想

有这么一个著名的数学猜想:一个正整数n,如果是奇数就乘以3再加1,如果是偶数就将该偶数除以2,得到的新数重复刚才这个处理过程若干个次后,最终就能算到数字1。需要你做的是:编写程序看看,对于任意给定的正整数n需要经过多少次运算处理才能算到数字1。例如n为8,则需要3次;n为11,则需要14次。

输入格式:
只有一个正整数n(即待判别处理的数)。

输出格式:
输出判定过程中出现的中间数字,和最后的总次数。
例如,如果n为11应输出如下:

34
17
52
26
13
40
20
10
5
16
8
4
2
1
times=14

输入样例:
在这里给出一组输入。例如:

11
输出样例:
在这里给出相应的输出。例如:

34
17
52
26
13
40
20
10
5
16
8
4
2
1
times=14

自己写的

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,time=0;
scanf(%d,
while(1!=n)
{
if(n&1==1)
{
n=n*3+1;
printf(%d\n,n);
}
else
{
n/=2;
printf(%d\n,n);
}
time++;
}
printf(times=%d,time);
return 0;
}

老师写的

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, count=0;
scanf(%d,
while (n!=1)
{
if (n % 2 == 0)
{
n = n / 2;
}
else
{
n = 3 * n + 1;
}
printf(%d\n, n);
count++;
}
printf(times=%d, count);
return 0;
}
举报

相关推荐

0 条评论