解题思路:列举:当数为1时,只用找出几位数,用if即可。
当数为12时,先找出几位数,用if来找;再找出其中的1和2并输出,即12/10就是第一个要输出的值,12-12/10*10就是第二个要输出的值。因为12/10之后为1,然后再*10就是10了,12-10当然为第二个数了,然后再输出。三位数,四位数,五位数同理。
注意事项:我这只用了if的用法,a[10]就是定了十个a,相当于定了a,b,c,d,e,f,g,h,i,j十个变量。
参考代码:
#include<stdio.h>
int main()
{
int a[10]; //这里我先定了十个变量a
scanf("%d",&a[0]);
if(a[0]>0 && a[0]<10)
{
printf("1\n%d\n%d\n",a[0],a[0]);
}
if(a[0]>10 && a[0]<100)
{
a[1]=a[0]/10;
a[2]=a[0]-a[1]*10;
printf("2\n%d %d\n",a[1],a[2]);
printf("%d%d\n",a[2],a[1]);
}
if(a[0]>100 && a[0]<1000)
{
a[1]=a[0]/100;
a[2]=a[0]-a[1]*100;
a[3]=a[2]/10;
a[4]=a[2]-a[2]/10*10;
printf("3\n%d %d %d\n",a[1],a[3],a[4]);
printf("%d%d%d\n",a[4],a[3],a[1]);
}
if(a[0]>1000 && a[0]<10000)
{
a[1]=a[0]/1000;
a[2]=a[0]-a[1]*1000;
a[3]=a[2]/100;
a[4]=a[2]-a[3]*100;
a[5]=a[4]/10;
a[6]=a[4]-a[5]*10;
printf("4\n%d %d %d %d\n",a[1],a[3],a[5],a[6]);
printf("%d%d%d%d\n",a[6],a[5],a[3],a[1]);
}
if(a[0]>10000 && a[0]<100000)
{
a[1]=a[0]/10000;
a[2]=a[0]-a[1]*10000;
a[3]=a[2]/1000;
a[4]=a[2]-a[3]*1000;
a[5]=a[4]/100;
a[6]=a[4]-a[5]*100;
a[7]=a[6]/10;
a[8]=a[6]-a[7]*10;
printf("5\n%d %d %d %d %d\n",a[1],a[3],a[5],a[7],a[8]);
printf("%d%d%d%d%d\n",a[8],a[7],a[5],a[3],a[1]);
}
return 0;
}
0.0分
2 人评分