题意
非常简单的数论模拟。
输入一个 n :
- 判断这个数 n 的奇偶性
- 奇数 -: n = ( 3 * n + 1 ) / 2
- 偶数 -: n = n / 2
- 不断地重复,直到 n = 1 停止。输出重复了几次
分析
其实都不用分析了…
只要按照题意去循环就好了
代码
#include <cstdio>
long long solve( long long n ){
if( n == 1 ) return 0;
if( n % 2 ) return 1 + solve( ( 3 * n + 1 ) / 2 );
else return 1 + solve( n / 2 );
}
int main()
{
long long n;
while( ~scanf( "%lld", &n ) ){
printf( "%lld\n", solve( n ) );
}
return 0;
}
小结
很水的一道题..
dalao签到用