赞
踩
目前主要分为三个专栏,后续还会添加:
感谢阅读!
初来乍到,如有错误请指出,感谢!
有一个数字魔法,给你一个正整数n,如果n为偶数,就将他变为n/2, 如果n为奇数,就将他变为乘3加1
不断重复这样的运算,经过有限步之后,一定可以得到1
牛牛为了验证这个魔法,决定用一个整数来计算几步能变成1
输入一个正整数n,范围在100以内
输出一个整数
思路 :
分两种情况,一种是偶数,一种是奇数
但是如果是奇数的话,进行乘3然后加1操作之后
还是偶数。
使用 count 来判断 进入循环多少次 就能得出计算了几步
初始化:首先,我们需要一个变量来存储当前的数字 n
,以及一个计数器 count
来记录变换的步数。
循环:使用一个 while
循环,条件是 n
不等于 1。只要 n
还是大于 1 的数,我们就继续进行变换。
判断奇偶:在每次循环中,首先判断 n
是奇数还是偶数。
执行变换:根据 n
的奇偶性,执行相应的变换规则。
更新计数:每次变换后,增加计数器 count
的值。
结束循环:当 n
变为 1 时,循环结束。
输出结果:最后,输出计数器 count
的值,它表示了将 n
变换到 1 所需的步数。
- /*思路 : 分两种情况,一种是偶数,一种是奇数
- 但是如果是奇数的话,进行乘3然后加1操作之后
- 还是偶数。
- 使用 count 来判断 进入循环多少次 就能得出计算了几步
- */
- # include <stdio.h>
- int main ()
-
- {
- int n = 0;
- int count = 0;
- scanf("%d",&n);
- while (n!=1) //当n不为1的时候就一直进行循环
- //当n为1的时候退出循环
- /*一旦 n 变为 1,条件 (n != 1) 不再为真,循环就会结束。*/
- {
- if (n%2==0) //判断偶数
- {
- n=n/2;
- }
- else //判断奇数
- {
- n = (3*n)+1;
- }
- count++;// 无论 n 是奇数还是偶数,步数都加 1
- }
- printf("%d",count);
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- int n,i;
- scanf("%d",&n);
- for(i=0;n-1;i++)
- {
- if(n%2==0)
- n=n/2.0;
- else
- n=3*n+1;
- }
- printf("%d",i);
- return 0;
- }
-
- /*——————————————————以下是注释详解——————————————————————————*/
- #include <stdio.h> // 包含标准输入输出库
-
- int main() // 主函数的开始
- {
- int n, i; // 定义两个整型变量 n 和 i
- scanf("%d", &n); // 读取用户输入的正整数,存储在变量 n 中
-
- for (i = 0; n != 1; i++) // 初始化循环变量 i,循环条件是 n 不等于 1,每次循环后 i 加 1
- {
- if (n % 2 == 0) // 如果 n 是偶数
- n = n / 2.0; // 将 n 除以 2.0,这里使用 2.0 而不是 2 是为了进行浮点数除法,防止整数除法导致的截断
- else // 如果 n 是奇数
- n = 3 * n + 1; // 将 n 乘以 3 加 1
- }
-
- printf("%d", i); // 输出循环执行的次数,即变换所需的步数
- return 0; // 函数返回 0,表示程序正常结束
- }
- #include <stdio.h> // 包含标准输入输出库函数
-
- int main() // 主函数的开始
- {
- int n = 0; // 定义一个整型变量 n,初始值为 0
- int pace = 0; // 定义一个整型变量 pace,用于记录变换的步数,初始值为 0
-
- scanf("%d", &n); // 从标准输入读取一个整数值到变量 n
-
- for (; n != 1;) // 开始一个无限循环,循环条件是 n 不等于 1
- {
- // 使用三元运算符进行条件判断和变换
- // 如果 n 是偶数,则 n = n / 2
- // 否则(n 是奇数),则 n = 3 * n + 1
- n = (n % 2 == 0) ? (n / 2) : (n * 3 + 1);
-
- pace++; // 无论 n 是奇数还是偶数,步数 pace 都自增
- }
-
- printf("%d", pace); // 输出步数 pace,即变换到 1 所需的步数
-
- return 0; // 函数返回 0,表示程序正常结束
- }
以下内容来自 : 菜鸟教程 C while 循环 | 菜鸟教程 (runoob.com)
C 语言中 while 循环的语法:
- while(condition)
- {
- statement(s);
- }
在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。
condition 可以是任意的表达式,当为任意非零值时都为 true。
当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。
在这里,while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。
- #include <stdio.h>
-
- int main ()
- {
- /* 局部变量定义 */
- int a = 10;
-
- /* while 循环执行 */
- while( a < 20 )
- {
- printf("a 的值: %d\n", a);
- a++;
- }
-
- return 0;
- }
当上面的代码被编译和执行时,它会产生下列结果:
- a 的值: 10
- a 的值: 11
- a 的值: 12
- a 的值: 13
- a 的值: 14
- a 的值: 15
- a 的值: 16
- a 的值: 17
- a 的值: 18
- a 的值: 19
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。