#include<stdio.h> int main() { unsigned long long sum=1u,m=1u; //严格来说,要输出的那个数超过了long long的范围了,其恰好是unsigned long long能表示的最大值。 int i; for(i=1;i<=63;i++) { m=m*2; //用pow会涉及到类型转换的问题且效率低下。这个用上次的值直接乘2,效率高。 sum+=m; } printf("%I64u\n",sum); return 0; }
[此贴子已经被作者于2016-3-9 09:26编辑过]