C语言判断循环了几次问题描述测试, 角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1.如
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 00:43:15
C语言判断循环了几次问题描述测试, 角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1.如
C语言判断循环了几次
问题描述
测试,
角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1.如:例如数据22的变化过程:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1,数据变化次数为16.
可用迭代法或递归法实现.
输入说明
第一行1个整数m(100 > m >0),表示有多少组数据. 其后一行为m个正整数,表示m个数据.
输出说明
一行输出1个数据变换次数后,换行
输入样例
3
22 33 43
输出样例
16
27
30
提示信息
要求输出格式必须和题目里要求一样,机器判断正确了,我就给分.
C语言判断循环了几次问题描述测试, 角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1.如
#include<stdio.h>
main()
{
int n,i,x,k,a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{ k=1;
scanf("%d",&x);
while(x!=1)
{
if(x%2==0)
x=x/2;
else x=x*3+1;
k++;
}
a[i]=k;
}
for(i=0;i<n;i++)
printf("%d\n",a[i]);
}
望采纳