编程实现:设N是一个四位数,它的9倍恰好是其反序数,求N
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 05:05:52
一个四位数的9倍仍是四位数,则这个数首位必为1,且小于等于1111,反序数的末位数就为1,这个数的末位数为9,这样这个数在1009到1111之间.答案是1089*9=9801
设N是一个四位数,它的9倍恰好是其反序数,求N.反序数就是将整数的数字倒过来形成的整数.例如:1234的反序数是4321.*问题分析与算法设计可设整数N的千、百、十、个位为i、j、k、l,其取值均为0
inti=2123;intone,two,three,four;one=i%10;//各位two=(i/10)%10;//十位three=(i/100)%10;//百位four=(i/1000)%10
1089*9=9801注意一个四位数*9后还是个四位数,所以第一位一定是1,如果B不是0,最小就是1209,*9后大于10000,所以只能是10C9,这样很好得出C=8
n是1089;答:n是1089.
设三位数为abcd,因为,四位数乘以9后,仍然是四位数,所以a=1,d=99*(1000a+100b+10c+d)=1000d+100c+10b+1a+9000+900b+90c+81=9000+10
publicstaticvoidmain(String[]arg){intk=0;intm=0;System.out.println("输入一个四位数");Scannerinput=newScanne
一楼的真猥琐3853850
M可以是1156,1296,1369,1600,1764共计五中可能.必须肯定的是,楼上的思路和做法都不错,就是有点计算错误.现改正如下:首先m-n是m和n的最大公约数的倍数(这句话应该不用解释,不理
int getOrdNum(int num){int res = 0;res += (num % 10)&
2004.3/9=222.7所以原数是2227
functiontest(){vari=12345;vars=i+"";//转字符串alert(s.length);//获取长度}
#include"stdio.h"#include"math.h"voidmain(){inta,n,i;longsum=0;printf("Pleaseinputa(0
搞定,1089*9=9801
四个数加起来的和不超过2位数,就可一直到,4位数中百位数是9.千位数是11991-(1+9)=1981假设十位上的数是A,那么个位上的数是B19*100+10A+B+A+B=19811900+11A+
9倍后还是们数,第一位肯定是1,最后一位肯定是9同理第二位只能是0,1(要是2的话,9位就大于10000了)当第二位=0时,刚好第三位=8当第二位=1时,第三位就无解了所以这个数为:1089
S=丨a-b丨+丨b-c丨+丨c-d丨+丨d-a丨==>S=(b-a)+(c-b)+(d-c)+(d-a)==>S=b-a+c-b+d-c+d-a==>S=2d-2a
#includeusingnamespacestd;voidmain(){inta,b,c,d,m,n;for(a=1;a
#includeusingnamespacestd;intmain(){intN;for(N=1000;N{intn=N/1000+(N%1000/100)*10+(N%1000%100/10)*10