shengxizi 发表于 2020-2-17 22:12:00

C语言输出演算过程

〖c 语言训练〗角谷猜想
问题描述
角谷猜想的内容是奇数则乘3 加1 , 得到一^ 新的自然数后按照上面的法则继续演算, 若十次后得到的结果必然为1 。编程验证。
任给一个自然数, 若为偶数除以2 , 若为
输入
任一正整数
输出
演算的过程


大佬们,演算过程怎么办?

人造人 发表于 2020-2-17 22:45:53

#include <stdio.h>

int main(void)
{
        size_t n;
        printf("请输入任意一个正整数: ");
        scanf("%lu", &n);
        while(n != 1)
        {
                if(n % 2 != 0)
                {
                        printf("%lu * 3 + 1 = %lu\n", n, n * 3 + 1);
                        n = n * 3 + 1;
                }
                else
                {
                        printf("%lu / 2 = %lu\n", n, n / 2);
                        n = n / 2;
                }
        }
        printf("%lu\n", n);
        return 0;
}


请输入任意一个正整数: 7
7 * 3 + 1 = 22
22 / 2 = 11
11 * 3 + 1 = 34
34 / 2 = 17
17 * 3 + 1 = 52
52 / 2 = 26
26 / 2 = 13
13 * 3 + 1 = 40
40 / 2 = 20
20 / 2 = 10
10 / 2 = 5
5 * 3 + 1 = 16
16 / 2 = 8
8 / 2 = 4
4 / 2 = 2
2 / 2 = 1
1

4goodworld 发表于 2020-2-17 22:51:54

int test() {
       
        int i,n;
        scanf("%d", &i);
        n = 0;
        printf("-----------------------\n");
        while (i != 1) {
                if (i % 2 == 0) {
                        i = i / 2;
                }
                else {
                        i = 3 * i + 1;
                }
                n++;
                printf("第%d次的数是%d\n", n, i);
        }
        printf("-----------------------\n");
        return 0;
}
这个意思吗?
页: [1]
查看完整版本: C语言输出演算过程