描述
给出一个正整数n(1≤n≤100000)。在n的右边加入n的一半,然后在新数的右边再加入n的一半的一半,一直进行,直到不能再加为止。
例如 n=37 37的一半为18(取整数)加到n的右边成为
3718 18的一半为9,加到新数的右边成为
37189 9的一半为4,加到新数的右边成为
371894 4的一半为2,加到新数的右边成为
3718942 2的一半为1,加到新数的右边成为
37189421 1的一半为0,加数结束,最后得到的数是一个8位的数
输入描述
整数n
输出描述
加数结束后新数的长度。
用例输入 1
37
用例输出 1
8
代码
#include<bits/stdc++.h>
using namespace std;
int n,ans=0;
int js(int n){
int s=0;
while(n>0){
s++;
n/=10;
}
return s;
}
int main(){
cin>>n;
while(n>0){
ans+=js(n);
n/=2;
}
cout<<ans;
return 0;
}