@努力的张张 的C#练习
- 求它的位数
- 逆序输出它
- 顺序输出它
算法思想
- 一个整数n,其整除10,得到他的前n-1位,以此类推,我们设置一个计数器,每更新一次n(让n=n除以10),计数器加一,知道n为0,停止计数,输出计数器当前值即可。
- 在知道某一个整数n的位数的前提下,仅需找到其最大除数的级数k(如12345的最大除数的级数是k=10000),接下来每次都输出n/k,然后n%=k,k/=10,进行循环,直到n为0时停止。
- 同类似的思想,每次输出n%10,然后更新n/=10,直到n为0时停止。
代码实现
#include<stdio.h>
#include<math.h>
int main()
{
int n1;
printf("请输入:");
scanf("%d",&n1);
int x=1;
int m=n1;
while((m/10)!=0)
{
x++;
m/=10;
}
printf("位数:%d\n",x);
int n2;
printf("请输入:");
scanf("%d",&n2);
int i=0;
do
{
i=n2%10;
printf("%d",i);
n2/=10;
}while(n2%10!=0);
printf("\n");
int n3;
printf("请输入:");
scanf("%d",&n3);
int j=1;
int q=n3;
while((q/10)!=0)
{
j++;
q/=10;
}
int p=n3;
int k=1;
for(int j=0;j<i-1;j++)
{
k*=10;
}
while(k!=1)
{
printf("%d ",p/k);
p%=k;
k/=10;
}
printf("%d\n",p/1);
}