C语言出错舍罕王的失算

C语言出错舍罕王的失算,第1张

你薯尺说的出错是是什么意思?该程序总体上没有出错,盯手段只是由于精度不够,不能给出精确的数字。如果想要准确的数字,需要使用unsigned long long数据类型:

准确的数字是:18446744073709551615

#include<stdio.h>

main()

{

unsigned long long t=1, sum=0

int i

for(i=1i<=64i++,t+=t)

sum=sum+t

printf("国凯誉王总需要赏赐给宰相的麦子数为:\n%llu\n",sum)

}

#include "stdio.h"

#include "conio.h"

/*舍罕是古印度的国王,据说他十分好玩,宰相达依尔为讨好国王,发明了现今的国际象棋献给国王。舍罕非常喜欢这项游戏,于是决定嘉奖达依尔,许诺可以满足达依尔提出的任何要求。达依尔指着舍罕王前面的棋盘提出了要求:“陛下,请您按棋盘的格子赏赐我一点麦子吧,第1个小格赏我一粒麦春尺子,第2个小格赏我两粒,第3个小格赏四粒,以后每一小键握格都比前一个小格赏的麦粒数增加一倍,只要把棋盘上全部64个小格按这样的方法得到的麦粒都赏赐给我,我就心满意足了。”舍罕王听了达依尔这个“小扒亮高小”的要求,想都没想就满口答应下来。

结果在给达依尔麦子时舍罕惊奇地发现它要给达依尔的麦子比自己想象的要多得多,于是他进行了计算,结果令他大惊失色。问题是:舍罕王的计算结果是多少粒麦子?

*/

void main()

{

//定义一个变量,用来保存麦子的个数

double count=0

//循环变量i

int i

for(i=0i<=64i++){

//累加

count+=pow(2,i)

}

//输出

printf("%lf",count)

}

#include <stdio.h>

#include <math.h>

main()

{ int 伏大x=1

    double y,z,q

   宽早 for(x<=63x++)

    {y=y+pow(2,x)}

    慎厅雀z=y+1

    printf("%e\n",z)

    q=z/1.42e8

    printf("%e\n",q)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12343665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存