📄 huiwen.cpp
字号:
#include<iostream>
using namespace std;
int data[100];
int pow10(int k)//计算10的k次方
{
int t = 1;
while(k--)
{
t*=10;
}
return t;
}
void make()//产生19,109,199,1099,1999...
{
int i;
data[1] = 1;
data[2] = 10;
for(i = 3;i<=50;i++)
data[i] = data[i-1] + 9*pow10(i/2-1);
}
int main()
{
make();
int n, i;
while(cin>>n&&n)
{
int k = 1;
while(data[k]<=n&&data[k]>0)
k++;
k--;
char str[100];
int len = 0;
int t = pow10((k+1)/2-1);//确定了结果的长度之后就可以从该长度下第一个整数开始累加
t+=(n-data[k]);
while(t)
{
str[len++] = char(t%10+'0');
t/=10;
}
for(i = len-1;i>=0;i--)
printf("%c", str[i]);
if(k%2){ //若k是奇数,就从1开始
for(i = 1;i<len;i++)
printf("%c", str[i]);
}
else{
for(i = 0;i<len;i++)
printf("%c", str[i]);
}
printf("\n");
}
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -