-
楼上,你写的好像是c**的思路,如果用vb,就要注意四舍五入。
这是 VB 的。
private sub command1_click()dim a as integer, b(1) as long, c as string
for a = 1000 to 9999 step 1b(0) = int(a / 100)
b(1) = int(a mod 100)if (b(0) +b(1)) b(0) +b(1)) = a then
c = c & cstr(a) &" "
end if
next a
if c = "" then
msgbox "没有必需的编号。 ", vbokonlyelsemsgbox "满足的要求数量为:" & c & " 。", vbokonly
end if
end sub
-
我觉得不可能,如果按照你的理解,ab不会超过100,cd也会,那怎么可能加到1000呢?
-
应该是,前两位数字之和加上后两位数字的平方等于原来的四位数字。
-
int n = 7;输入的自然数。
int k = 0;输出的状态控制初始化为 0for (int i = 2; i < n; i++)if (k ==0)
-
你想要这个效果吗:
select 'a' + 'b'
union all
select 'c' + 'd'
或者也许是这样的东西:
select 'a' + 'b
'c' + 'd'
-
我不明白你的意思,既然你想要换行的结果,那么你的应用场景就在**?
-
d = n % 10;
c = n / 10 % 10;
b = n / 100 % 10;
a = n / 1000;
这就是表达方式应该有的样子。
-
没有输出,没有与等式匹配的四位数字。
-
最简单的方法是在 10,000 个循环中求解。
for(int i = 0;i<10000;我++)但如果这是一个面试问题,这样做肯定不好,因为它效率不高。
因此,最好使用公式来推导并找到 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)。"ab=,cd=",0,0);
for( int sum=1;sum<199;sum++)cd=",ab,sum - ab);这 199 次的循环绝对比 10,000 次循环更有效率。
但必须有一个更高的,即 for( int sum=1; sum<199;sum++),这样保证 sum 的每个值都是 99 sum*(sum-1) 的倍数,没有时间去思考,数学问题。
思路:要求一个正整数n的位数,可以先定义一个变量num,并初始化为0,将整数n依次除以10,直到为0,每除以10,变量num的个数就会加1,最后一个num的值就是整数n的位数。 >>>More
一种算法,其中一个数字是另一个数字的百分之一:首先除法,计算结果,然后将其转换为百分比。 那是:一个数字,另一个 100%。 >>>More