再者
我的程序中根本没有涉及到这两个函数库中的函数呀
如果你可以把编译系统提示
包括内容和行数告诉我
我也许能帮你解决
纠正一下我在14楼说的话
t=i*i;应该改为t=(i/100)*(i%100)*200+(i%100)*(i%100);
注意是乘以200而不是2
下面给出改进过的程序
我也是经过调试了的
无语法和逻辑错误
我没机子的哈哈!
但是应该都不关事的吧cup inte 和AMD不一样的吗?
但是很感谢你啊!是我太菜啦
我们上机用的系掉牙的tc 2。0 我运行时
说Linker Error: Unable to open input file `cos.obj`
你能分析下算法 吗!?
先分析一下几个变量的意义
i是代表自然数,兼有记数的功能
如果符合条件,它就是要求的自守数,将被输出
b将用来处理i
t将用来处理i*i
flag是个标志符
它将决定i是否被输出
下面特别说明一下
t=(i/100)*(i%100)*200+(i%100)*(i%100);的涵义
显然100000以内的自守数是决不会超过一千的
那么这样的自守数可以表示成i=100*a+b(a,b是自然数,而且小于100)
那么i*i=a*a*10000+200*a*b+b*b
a=i/100,b=i%100
要看i是否自守数
只需看t=200*a*b+b*b的尾数和i是否相同就够了
比如i=315;
t=9225,i*i=99225
只看t就够了
再说明一下
((i-1)/100)*((i-1)/100)<10的涵义
如果i的平方小于100000的话
那么i/100的平方肯定也小于100000/(100*100)也就是10