用C语言验证一个集合问题,请高手指点
假设有一个集合alefh1=1+2+3+……+n, 与它当中的每一个元素对应可以构成一个集合alefh0=1+2*2+3*3+……+n*n,那么这两个集合是否具备一一匹配的关系?也就是说,alefh1是否等于alefh0?下面是用C语言写成的代码:
#include <stdio.h>
//验证阿列夫0是否具备良序
main() //如果有,返回0
{
long long alefh0;long alefh1;long n; //阿列夫总和,阿列夫集合的元素 ,元素是正整数集,用无穷i做比较,n是数组
n = 2; //从正整数2开始递增,以至无穷
alefh1 = 1; //alefh初始值为1
alefh0 = 1; //alefh0初始值为1
alefh1 = alefh1 + n; //alefh1 = 1+2+3+……+n
alefh0 = alefh0 + n*n; //alefh0 = 1+2*2+3*3……+n*n
while(alefh1 != alefh0)
++n;
printf("It's okay\n");
return 0;
}
执行此程序,长时间无果,请高手出来指教。
[解决办法]
技术问题为什么要发在非技术区?
[解决办法]
while(alefh1 != alefh0)
++n;
死循环, 怎么可能有结果啊,应改为:
while(alefh1 != alefh0)
{
++n;
alefh1 = alefh1 + n;
alefh0 = alefh0 + n*n;
}