推算整数问题

给一个整数,要求:

① 求出他是几位数

② 分别输出每一位数字

③ 按逆序输出各位数字


解析:
假设整数为n,
第一步:/10 将最低位丢弃;
第二步:重复第一步,直到为0为止,统计总共可以丢弃的次数.
  • 例如:1234
  • 第一次 1234/10------12
  • 第二次 123/10------12
  • 第三次 12/10------1
  • 第四次 1/10------0
#include<stdio.h>
int GetDigit(int n)
{
	int i=0;
	do{
		i++;
		n/=10;
	}while(n!=0);
	return i;
}
int main()
{
	printf("12345的位数为%d\n",GetDigit(12345));
	printf("0的位数为%d\n",GetDigit(0));
    return 0;

}


解析:
假设整数为n,
第一步:由①得到整数位数count;
第二步:n/(10的count次方)得到最高位,输出最高位,n%(10的count次方)丢弃最高位, count/10;
第三步:重复第二步操作,直至为0为止.
  • 例如:1234
  • 第一次 1234/1000------1                      1234%1000------234
  • 第二次    234/100-------2                          234%100------34
  • 第三次        34/10-------3                              34%10------4
  • 第四次             4/1------4                                  4%1------0
  • #include<stdio.h>
    
    int GetDigit(int n)
    {
    	int i=0;
    	do{
    		i++;
    		n/=10;
    	}while(n!=0);
    	return i;
    }
    
    void Show(int n)
    {
    	int temp=GetDigit(n);           //得到位数
    	int k=1;                                 
    	int j;                                      //保存最高位
    	for(int i=0;i<temp-1;i++)
    	{
    		k*=10;
    	}
    	do
    	{
    		j=n/k;                   //得到最高位
    		printf("%d ",j);
    		n%=k;                  //丢弃最高位
    		k/=10;
    	}while(n!=0);
    	printf("\n");
    }
    
    int main()
    {
             Show(1234);
             Show(0);
          return 0;
    }

解析:
假设整数为n,
第一步:n%10得到最低位,输出最低位,n/10丢弃最低位;
第二步:重复第一步,直至为0为止.
  • 例如:1234
  • 第一次   1234%10------4          1234/10-------123
  • 第二次     123%10------3              123/10------12
  • 第三次       12%10------2                 12/10------1
  • 第四次         1%10------1                   1/10------0
void ReverseShow(int n)
{
	int i=0;
	do
	{
		i=n%10;
		n/=10;
		printf("%d  ",i);
	}while(n!=0);
	printf("\n");
}

int main()
{
       ReverseShow(1234);
       ReverseShow(0);
     return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值