永发信息网

编程求具有abcd=(ab cd)^2性质的四位数.如3025=(30 25)^2

答案:2  悬赏:0  手机版
解决时间 2021-01-28 15:22
用VB
最佳答案
data segment x dw ? data ends code segment assume cs:code, ds:data start: mov bx, 999 m: inc bx cmp bx, 10000 jz out1 mov ax, bx mov cl, 100 div cl add al, ah mul al cmp ax, bx jne m call dis jmp m dis: mov x, bx mov cx, 0 mov bx, 10 let1: mov dx, 0 inc cx div bx push dx cmp ax, 0 jnz let1 let0: pop ax add ax, 3030h mov dl, al mov ah, 2 int 21h loop let0 mov dl, 0ah mov ah, 2 int 21h mov dl, 0dh mov ah, 2 int 21h mov bx, x ret out1: mov ah, 4ch int 21h code ends end start
全部回答
最简单的做法是循环10000次求解 for(int i = 0;i<10000;i++) { if(i == (i/100 + i%100)^2) console.writrline(i); } 但是如果这是面试题的话,这么做肯定不好,因为不效率。 所以最好用公式推导,求出ab和cd的关系。 abcd == (ab+cd)^2 100ab+cd == (ab + cd)* (ab + cd) 当ab==cd==0时,恒成立; (ab+cd)>0时,99ab== (ab + cd)* (ab + cd - 1) 所以:设sum=ab+cd,tmp = sum*(sum-1) console.writeline("ab={0},cd={1}",0,0); for( int sum=1;sum<199;sum++) { int tmp = sum*(sum-1); if( (tmp % 99) != 0) break; else { int ab = tmp /99; console.writeline("ab={0},cd={1}",ab,sum - ab); } } 这个循环199次,效率肯定要比循环10000次高。 但是肯定还有更高的,就是在for( int sum=1;sum<199;sum++)里做判断,让sum的每次取值都保证sum*(sum-1)是99的倍数,具体的也没时间细想了,数学题。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
183 的男生高吗 我女友166 合适吗 是不是我太
煎铄的意思是什么啊?知道的请说下!
梦到家人生病
佰家汉典红木馆地址好找么,我有些事要过去
会声会影有没有能全部改字体的选项
关于SAT subject test math2If f(x)=3X+12
联想拯救者15散热买个什么类型的散热器适合
无锡汽车站到无锡华润安盛科技怎么走
恒信环保家具城地址好找么,我有些事要过去
楯墨的意思是什么啊?知道的请说下!
布匹商行地址好找么,我有些事要过去
兴业动力白金卡年费多少
战争雷霆里的水陆两栖坦克可以在水里开吗
开封市凯立德授权升级网点在哪?
梦见蛇成群从屋向外跑的很快
推荐资讯
我右手中指指甲左下端,肿了个包,很早就有了
中国移动(翁城服务厅)地址在哪,我要去那里办
相亲女为啥总是没有安全感
用3,6,0,9可以组成多少个没有重复数字的两位
支付宝设置两张银行卡,先从一家银行将钱打入
2009年2月3号是农历的什么节?为什么会比春节
6—10位英文数字怎么写
父母房装电视没装有线孔怎么办
新时代网络休闲吧地址有知道的么?有点事想过
视频花屏怎么回事
青春期的显著特点不包括CA. 逻辑思维能力增强
中国工商银行(文峰西路储蓄所)地址在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?