进制转换类型题目,相同的还有很多,都是开一个数组存每一位数字,最后倒序输出的类型
重要的小技巧,int赋值给string时,要+‘0’,同理,string中的每个char想要赋值给int,都要-‘0’
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
string s;
int ans;
int main(){
getline(cin,s);
int len = s.length();
while(len > 1){
int res = 0;//记得赋初值
//先求和
for(int i = 0;i < len;i++){
res += s[i] - '0';//char转int的小tip
}
ans = res;//先保存结果,不然退出时不是res的值
//再保存到s,更新长度
string t;//t保存的是res的反序
int mod = 0,k = 0;
while(res != 0){
int mod = res % 10;
res /= 10;
t[k++] = mod;
}
s = "";
int m = 0;
for(int i = k-1;i >= 0;i--){
s[m++] = t[i]+'0';//整形转成字符型!!一定要转换,不然无法赋值!!
}
len = k;
}
cout << ans << endl;
return 0;
}