美文网首页
舍罕王的失算

舍罕王的失算

作者: 一路向后 | 来源:发表于2021-10-18 21:24 被阅读0次

1.问题描述

相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8x8共64格象棋棋盘说: 陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依次放完64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现承诺。请编程求出国王总共需要将多少麦子赏赐给他的宰相。

2.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gmp.h>

int main()
{
    mpz_t sum, a, b;
    int i;

    mpz_init(sum);
    mpz_init(a);
    mpz_init(b);

    mpz_init_set_ui(sum, 0);
    mpz_init_set_ui(a, 2);

    for(i=0; i<64; i++)
    {
        mpz_pow_ui(b, a, i);
        mpz_add(sum, sum, b);
    }

    gmp_printf("国王总共需要赏赐给宰相的麦子数为: %Zd\n", sum);

    mpz_clear(sum);
    mpz_clear(a);
    mpz_clear(b);

    return 0;
}

3.编译源码

$ gcc -o test test.c -std=c89 -I/usr/local/include -L/usr/local/lib64 -lgmp -Wl,-rpath=/usr/local/lib64

4.运行及其结果

./test
国王总共需要赏赐给宰相的麦子数为: 18446744073709551615

相关文章

  • 舍罕王的失算

    1.问题描述 相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪...

  • 如何轻松赚取100万?复利的力量

    如何轻松赚取100万?复利的力量 故事:舍罕王赏麦 相传国际象棋是古印度舍罕王(Shirham)的宰相达依尔(Da...

  • 自学Python:国王给象棋发明者的奖励

    相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8...

  • 王罕

    王罕原名脱翰或邻勒,属于蒙古克烈部人。因金朝封其为“王”,故称“王汗”,又叫“王罕”。早年间,他的父亲死后,王罕继...

  • 10/50_我们的人生希望:复利

    在正式说复利前,先给大家讲个故事: 舍罕王打算奖赏国际象棋的发明人-----宰相西萨·班·达依尔。国王问他想要什么...

  • 听说要成长的你,连“复利”都不知道?

    【公式】 【复利效应的传说】 印度的舍罕王打算重赏象棋的发明人宰相西萨·班·达依尔,因为这位聪明的大臣此项发明让国...

  • 复利的力量

    你应该也听过那个有关谷粒的复利故事。舍罕王打算奖励发明象棋的人--宰相西萨·班·达尔依,问他想要什么样的奖励,宰相...

  • 从一万到100万的理财法则(来自微淼课程)

    “复利” 被爱因斯坦称为第八大奇迹。你或许听过这个名词,或许没有。但很可能听过这个故事: 舍罕王打算奖赏国际象棋的...

  • 成功路上不拥挤,都是“剩”者为王

    听完山东小伙追姑娘的故事,让我想起了印度关于棋盘放麦粒的古老的传说:舍罕王打算奖赏国际象棋的发明人——宰相:西萨·...

  • 出售时间前你要牢记的三条铁律

    1 舍罕王打算奖赏国际象棋的发明人——宰相西萨·班·达依尔。 国王问他想要什么,他对国王说: “陛下,请您在这张棋...

网友评论

      本文标题:舍罕王的失算

      本文链接:https://www.haomeiwen.com/subject/mftooltx.html