【基础】加数c++
给出一个正整数n(1≤n≤100000)。在n的右边加入n的一半,然后在新数的右边再加入n的一半的一半,一直进行,直到不能再加为止。37189421 1的一半为0,加数结束,最后得到的数是一个8位的数。例如 n=37 37的一半为18(取整数)加到n的右边成为。3718942 2的一半为1,加到新数的右边成为。371894 4的一半为2,加到新数的右边成为。3718 18的一半为9,加到新数的右边
·
描述
给出一个正整数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>
#include<string>
#include<algorithm>
using namespace std;
int a[105][105]={},i,j,s;
int ch(int n){
int s=0;
while(n>=1){
s++;
n=n/10;
}
return s;
}
int sh(int s){
if(s==0){
return 0;
}
else{
return ch(s)+sh(s/2);
}
}
int main(){
cin>>s;
cout<<sh(s);
return 0;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)