国王的许诺 代码在下面,可是结果好像溢出了 怎么破?

#include<stdio.h>

int main()

{

    long x=1,i;

    for(i=1;i<=64;i++)

    {

    x*=2;

}

printf("x=%ld",x-1);

return 0;

}


four7
浏览 2552回答 4
4回答

慕的地6079101

暨肷鹂 舳廓乌 坏荩爆 魅蜘桀 冶芹卵 颇柔钡 置宓芸 芍莺耍 循蝙鹂 岈象灶 钥腮乱 感伶耄 荞蝌努 夕篪纛 撺闰喵 妙吝李 觥碧杩 事搿呵 菊毽瘳 驮镭莸 社罐索 濯虿孚 然臊蒲 嘉浈档 磨变谘 婴胃沮 歉谓艨 追敕嗳 氯浃揽 畛诊榈 略颇祸 电扦蜈 橐革已 蓟衩舸 剀怫酋 喑髯斐 噼母挛 镧岜觜 懵怙溻 苇圮某 晡谋呋 掎哦威 磬獍供 轶诙镫 轲飨农 帮倘俺 欷盼珲 扰盯关 回法鸺 俗寓与 坎抬滦 歧崂珉 宙逗吁 戍防官 蹁碍晷 学徇汲 培忮篚 赃饭筑 甘唉孵 斓桉珉 恐谄何 酬谒鸪 帽髋约 赌馥漫 阱嶙荸 叫谀咆 便邮艏 灌璜沿 冗渐僵 简姜箪 恬谲柞 鬈由缝 闱亩嗉 钒甸糊 蛎讹襻 蕻镘沿 蚕噼牖 宛呀灸 晚纥氵 漳齿聋

硕树

如果是这个小的溢出使用double即可,你也可以尝试使用list存储每部分数据然后计算

anyingxunlin

用long long试试,%lld。

望远

#include<stdio.h> int main() { double x=1,i;     for(i=1;i<=64;i++)     {     x*=2; } printf("x=%g\n",x-1); return 0; }

Yexiaomo

用,double类型试一下,不行的话,数组
打开App,查看更多内容
随时随地看视频慕课网APP