题目描述
数字翻转并去除高位无意义的零 写一个函数rev 计算rev(rec(x)+rev(y))
如rev(123)=321 rev(100)=1
#include<iostream>
//有关字符串操作就带上这三个头文件,不准确但不会出错
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
int rev(int n)
{
string s=""; //初始化空字符串
s+=to_string(n); //to_string的头文件是<string>
reverse(s.begin(),s.end()); //字符串翻转函数,头文件是<cstring>
char c[10];
bool flag=false;
int k=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==0 && flag==false){ //读取高位0,读取到第一个非零,把标志至真
continue;
}
else{
flag=true;
c[k++]=s[i]; //把字符串中的字符一个一个存进字符数组
}
}
int res=0;
for(int i=0;i<k;i++)
{
int a=c[i]-'0'; //char转int,减去'0';
res=res*10+a;
}
return res;
}
int main()
{
int x,y;
cin>>x>>y;
cout<<rev(rev(x)+rev(y));
return 0;
}
char->int : - ‘0’ ;
int->char : + ‘0’ ;