描述
有一串数字,它虽然长,但他还是一串数字。我有强迫症,我讨厌看到有同样的数字在一起,我想在中间加一个比它们大一点的数。比如123411,我希望它变成1234121。比如333,我希望它变成34343。你能帮我处理一下这些数字吗。
输入
每行输入一串数,对于这些数进行处理,这串数,最多有1000位。
输出
输出你处理后的数,当输入的数为0时结束。
输入样例 1
111
991
10001
0
输出样例 1
12121
91091
1010101
这题表面上说是整数可是有需要读取每一位,那么实际上字符串是最好的选择,所以我们可以使用字符串来表示整数,当输入的字符串串长为1而且那个唯一的数是0时即退出输入,对于字符串我们需要遍历如果它和它的后一位相等则输出本身和本身化为整数对于的数字加1的数,否则直接输出自己。
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
string a;
while(cin>>a)
{
int temp;
if(a.length()==1&&a[0]=='0')
break;
for(int i=0; i<a.length()-1; i++)
{
if(a[i]==a[i+1])
{
temp=a[i]+1-'0';
printf("%c%d",a[i],temp);
}
else
printf("%c",a[i]);
}
printf("%c\n",a[a.length()-1]);
}
return 0;
}