问题遇到的现象和发生背景
pta 乙级1030 完美数列
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
第十五行为什么这样写就对 (long long)(ch[i]*p)这样就不行
或者第十五行不加long long ,定义时long long int p就行了
我想要达到的结果
在我现在浅薄的认识里,爆是指int i,然后i的值超过了比如说2^32
这里又没有定义一个变量放ch[i]*p的值,也要long long 吗
不太理解
pta 乙级1030 完美数列
第十五行为什么这样写就对 (long long)(ch[i]*p)这样就不行
或者第十五行不加long long ,定义时long long int p就行了
在我现在浅薄的认识里,爆是指int i,然后i的值超过了比如说2^32
这里又没有定义一个变量放ch[i]*p的值,也要long long 吗
不太理解
因为ch[i]*p如果ch[i]或p是int,ch[i]*p的结果也是int,如果它的值是大于2^32的话,会爆的,就是比如限制值最大为1111,就是只有四个位,然后有某个数二进制计算获得值本来是10000,由于只有四个位,所以实际上最终这个值是0000,就被误算为其他的结果了