题目链接:点击打开链接
模拟水题,主要是考sprintf和sscanf的用法。
最常用的:
sprintf(c,“xx”,n):把n向字符串c中输入
sscanf(c,“xx”,&n):从字符串c中读出东西给n
“xx”处是输入选择,可以实现很多功能,具体百度百科。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
long long a[10000];
char t[1000];
void Rev(char c[]){
int len=strlen(c);
for(int i=0;i<len/2;i++){
swap(c[i],c[len-i-1]);
}
}
bool check(char c[]){
int len=strlen(c);
for(int i=0;i<len/2;i++){
if(c[i]!=c[len-i-1])
return 0;
}
return 1;
}
int main(){
long long n;;
while(cin>>n){
memset(a,0,sizeof(a));
long long res=0;
sprintf(t,"%I64d",n);
a[res]=n;
while(!check(t)){
Rev(t);
long long k;
sscanf(t,"%I64d",&k);
n+=k;
sprintf(t,"%I64d",n);
a[++res]=n;
}
cout<<res<<endl;
for(int i=0;i<=res;i++){
cout<<a[i];
if(i!=res)cout<<"--->";
else cout<<endl;
}
}
return 0;
}
1万+



被折叠的 条评论
为什么被折叠?



