添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
# include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main ( int argc , char * argv [ ] ) { int digit , number , pow , t_number ; scanf ( "%d" , & number ) ; t_number = number ; pow = 1 ; while ( t_number > 9 ) //获取number位数 pow = pow * 10 ; //pow位数+1 t_number = t_number / 10 ; //t_number位数-1 while ( pow >= 1 ) //开始分割 digit = number / pow ; number = number - digit * pow ; pow = pow / 10 ; printf ( "%d " , digit ) ; printf ( "\n" ) ; return 0 ; Q:如何利用简单的基本运算来得到一个 数字 的各个数 上的 数字 ? A:利用除法和求余运算:以153为例 首先,百 最容易得到:153/100=1。任何三 数除以100都是得到其百 数字 其次,个 也好弄:153%10=3。任何三 数对10取余都是其个 数。 最后,十 数有四个方法。 最好想的: 1.用(原三 数—百 数* 100—个 数 * 1)/10 153-1X100-1X3=50; 50/10=5 2.将原三 数对100取余,再除以1 (1)设输入的数的 数为count,要从123456中提取1,可用123456/100000,即123456/(10的count-1次方)(2)同理,若要提取123456中的2,可123456%100000,得到23456,再沿用(1)的方法。上图是笔者在做这道题时的思路,有时没思路时也可以尝试逆推。printf("该整数 分离 结果为:");printf("输入一 正整数:");(3)故第一步,我们先统计出123456的 数。则 输出 :1,2,3,4,5,6,例如输入:123456。(4)具体方法参考代码。 在实际应用中,我们常常需要将整数的各 分割 后进行使用。 对整数的 分割 我们可以用一个while循环进行处理,并将 分割 后的整数置于一个数组中存储。 #include<stdio.h> int main(){ int a=123567; int result[10],i=0,j,temp; //用一个while循环对整数进行 分割 while(a!=0){ result[i]=a%10; i++; //记录整数 数 a=a/10; i--; //结束while循环后i肯定 本来是想总结一下对一个int型数的操作有关的算法,但是发现有这么一类算法和数的各个数 有关,比如求水仙花数。其实这类算法最主要的就是把一个数的各个 分离 。所以就贴上简单易用的最重要的几句算法吧。 非递归方式 while(p){//p是要 分离 的数 printf("%2d",p%10); p=p/10; void fun(int p){ if(p==0) retu...