3n+1 对于任意大于1的自然数n,若n为奇数,则将n将变为3n+1,否则变为n的一半.经过若干次这样的变换,一

3n+1 对于任意大于1的自然数n,若n为奇数,则将n将变为3n+1,否则变为n的一半.经过若干次这样的变换,一
描述
对于任意大于1的自然数n,若n为奇数,则将n将变为3n+1,否则变为n的一半.经过若干次这样的变换,一定会使n变为1.例如3→10 →5 →16 →8 →4 →2 →1.现请你计算变换中这些数的平均值,例如上述变换中3、10、5、16、8、4、2和1的平均值为6.125.
输入
输入自然数n,n≤106.
输出
输出从n变换为1过程中所有数的平均值,保留3位小数,格式见样例.
样例输入
3
样例输出
6.125
提示
NUPT
数学人气:338 ℃时间:2019-08-19 08:00:41
优质解答
//AC过了的
#include
int main()
{
int n,i;
double sum;
scanf("%d",&n);
sum = n;
i = 1;
while(n != 1)
{
if(n % 2)
n = n * 3 + 1;
else
n /= 2;
sum += n;
i ++;
}
printf("%.3f",(double)sum/i);
return 0;
}
我来回答
类似推荐
请使用1024x768 IE6.0或更高版本浏览器浏览本站点,以保证最佳阅读效果。本页提供作业小助手,一起搜作业以及作业好帮手最新版!
版权所有 CopyRight © 2012-2024 作业小助手 All Rights Reserved. 手机版