分享2的64次的正规写法
查看原帖
分享2的64次的正规写法
274050
四旬老汉楼主2020/11/13 15:52

看到部分OIer不得要领,分享一下吧 本题当需要2^64的时候,分两种情况: 一是n==0,直接输出2^64,用系统自带的计算器算一下,硬编码字符串输出:

printf("18446744073709551616\n");

二是n!=0的时候,需要2^64减去n,unsigned long long 最大能表示2^64-1,所以我们用这个最大值先减n,再加上1就行了,因为n至少是1,保证不会溢出。所有数据类型的最大值都在头文件climits里,不要自己写

#include <climits>
printf("%llu", ULLONG_MAX - n + 1);
2020/11/13 15:52
加载中...