题解 1146: C语言训练-舍罕王的失算

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

C语言训练-舍罕王的失算-题解(C++代码)

摘要:解题思路:题目看起来像是考大数,我没有特意写大数计算了,两个数组解决问题。注意事项:其实不用数组存储好像也行,看到有人直接用double类型来存储运算。参考代码:#include<iostream> ……

C语言训练-舍罕王的失算-题解(C++代码)——大数运算

这个题,它给的样例答案是错的,正确的结果应该是18446744073709551615(2的64次方-1)#思路模拟大数运算,编写一个大数加法(用于加和),在编写一个大数乘法(用于累乘)#代码#includeusingnamespacestd;intnum[100]={0};intadd[100]={

C语言训练-舍罕王的失算-题解(Python代码)

看到这种简单的大数计算的题,直接就想到用python~(真的很不喜欢C里面数据范围的问题。。)事实上python算出来似乎比题目给的答案还要精确点hhhhAC代码:```python#-*-coding:utf-8-*-recordnum=64sum=1while(recordnum>0):sum=s

C语言训练-舍罕王的失算-题解(C语言代码)

解题思路:将2^0到2^63依次相加后输出,因为最后的数字太大,所以我使用了无符号超长整形。(2^0代表2的0次方)代码如下:#include#includeintmain(){unsignedlonglongsum=0;//使用无符号longlong来存储数据inti;for(i=0;i<64;i+

C语言训练-舍罕王的失算-题解(C语言代码)

#思路2^0+2^1+...+2^63=2^64-1。主要是数据太大了,用longlong类型都存储不下。使用double类型,做减法会存在精度丢失。使用数组存储每一位数,跑出精确的结果。1844674407370955????。用double和数组计算出来的2^64,后四位都是1616。