C语言每日一题——第三天

第三天

完成了给朋友的礼物和自己的小想法,小明觉得这两天的学习非常成功!他决定去开发一个小游戏。

在一阵开发之后……他遇到了难题——如何为生成“随机数”?尽管操作系统提供了random函数,但小明并不想使用除了标准输入输出外的任何依赖操作系统的功能。

稍加思索,小明决定使用斐波那契数列生成伪随机数。不过在写游戏代码前,他要写出用于计算int类型支持的所有斐波那契数的程序。

执行:$ main.exe

输出:

1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170
1836311903

输入

输出

int类型支持的所有斐波那契数列中的数字。

关键

整形的最大值。


解答

#include <stdio.h>
#include <stdint.h>


int main(int cnt, char **argv) {
    int a, b, temp;

    a = b = 1;

    do {
        // 经典交换值
        temp = b;
        b += a;
        a = temp;
        // 打印输出
        printf("%d\n", a);
    } while (a < INT32_MAX / 2);  // 判断是否应该结束循环. 通过 sizeof 判断, 我的计算机 int 长度为32位

    printf("%d\n", b);

    return 0;
}
posted @ 2022-09-29 13:30  风吹云动  阅读(145)  评论(0编辑  收藏  举报