3n+1
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 1246 测试通过 : 507
总提交 : 1246 测试通过 : 507
比赛描述
对于任意的正整数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,1<=n<=106。
输出
输出从n变换为1的过程中所有数的平均值,结果保留3位小数;
样例输入
3
样例输出
6.125
提示
定义浮点数时,请均使用double类型
题目来源
NUPT
#include<iostream>
int main(){
int n,count;
double sum;
scanf("%d",&n);
count = 1;
sum = n;
while(n!=1){
if(n&1){
n = n*3+1;
}else{
n >>= 1;
}
sum += n;
count++;
}
printf("%.3lf",sum/count);
}