| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 991 人关注过本帖
标题:想问一下这2个题的写法
只看楼主 加入收藏
battlehare
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-10-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
想问一下这2个题的写法
图片附件: 游客没有浏览图片的权限,请 登录注册
程序代码:
#include <stdio.h>
int main(void)
{
int i, an;
long long s;
an = 2;
s = 0;
for (int i = 1; i <=30; ++i)
{
    s = s+an;
    an = 2*an+3;
    

    }
    printf("%llu\n",s );
    return 0;
}

程序代码:
#include <stdio.h>
int main(void)
{
int i;
long long s,an;
an = 3;
s = 1;
for (int i = 1; i <=10; ++i)
{
    s = s*an;
    an = an*an+1;
    

    }
    printf("%llu\n",s );
    return 0;
}
搜索更多相关主题的帖子: for int printf ++i long 
2020-10-27 23:27
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
收藏
得分:7 
回复 楼主 battlehare
两段程序都是同一个错误,重复定义变量

程序代码:
#include <stdio.h>
int main(void)
{
    int i, an;
    long long s;
    an = 2;
    s = 0;
    for (i = 1; i <= 30; ++i)    // 重复定义变量 i 
    {
        s = s + an;
        an = 2 * an + 3;
    }
    printf("%llu\n",s );
    return 0;
}


程序代码:
#include <stdio.h>
int main(void)
{
    int i;
    long long s,an;
    an = 3;
    s = 1;
    for (i = 1; i <= 10; ++i)    // 重复定义变量 i 
    {
        s = s * an;
        an = an * an + 1;
    }
    printf("%llu\n",s );
    return 0;
}


以上两题在我电脑中运行的结果与本论坛右上角的“在线编程”运行的结果不一致,请甄别使用
2020-10-28 01:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:7 
第一题
由 a(n) = 2*a(n-1) + 3; a(0)=2
得 a(n) = 5*2^n - 3
故 s(n) = 10*2^n - 3*n - 8

s(29) = 10*2^29 - 3*29 - 8 = 5368709025
ln(5368709025)/ln(2) = 32.321928069358687384555564907482
得出两个结论
a. 第一题正确的结果是 5368709025
b. 结果至少需要 33bits 长度的整型

程序代码:
#include <stdio.h>

int main( void )
{
    const unsigned n = 30;

    unsigned long long s = 0;
    unsigned long long a0 = 2;
    for( unsigned i=0; i!=n; ++i )
    {
        s += a0;
        a0 = 2*a0 + 3;
    }
    printf( "%llu\n", s );
}
2020-10-28 09:07
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:7 
以下是引用风过无痕1989在2020-10-28 01:38:18的发言:

两段程序都是同一个错误,重复定义变量


#include <stdio.h>
int main(void)
{
    int i, an;
    long long s;
    an = 2;
    s = 0;
    for (i = 1; i <= 30; ++i)    // 重复定义变量 i
    {
        s = s + an;
        an = 2 * an + 3;
    }
    printf("%llu\n",s );
    return 0;
}



#include <stdio.h>
int main(void)
{
    int i;
    long long s,an;
    an = 3;
    s = 1;
    for (i = 1; i <= 10; ++i)    // 重复定义变量 i
    {
        s = s * an;
        an = an * an + 1;
    }
    printf("%llu\n",s );
    return 0;
}


以上两题在我电脑中运行的结果与本论坛右上角的“在线编程”运行的结果不一致,请甄别使用

不会重复定义变量i
只是循环外面定义的i没有使用而已

https://zh.
2020-10-28 09:08
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 4楼 lin5161678
第二题怎么做?
除了写个 大整数 运算之外?
2020-10-28 09:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
第二题
答案是:384130179466225445700872327670375022441096967895152423624783223384046075215032458091605752041332062122429035573407023707607875507521438296803932869339244072370840974662110682441955466267339198871576036919765265983307948719274105051448137507694747252345484373475180174877166635057112561870988118618609212347768616224784538093370145707302387367636873647548080210112197422810627564136410513769512890658858649452254571545176781302049705974398681817260942904618160945324297701513488572810438000480957778440222590956000

中间过程的各数值是:
f(1)=3, p(1)=3
f(2)=10, p(2)=30
f(3)=101, p(3)=3030
f(4)=10202, p(4)=30912060
f(5)=104080805, p(5)=3217352089008300
f(6)=10832813969448026, p(6)=34852976654441900983972732615800
f(7)=117349858496668297583751115296677, p(7)=4089991878586440730407140888927965916149280944892195011257696600
f(8)=13770989289188072635789270799554901596999795308252284177727242330, p(8)=56323234352880079312032536934164927024644141453175344554218467931607637109789188048490757836045123313894208020448121705817078000
f(9)=189640146002932618027051463799914755423090994186326270293668066313937134787077555795867512121603834636957486074936106226543828901, p(9)=10681146386037568293630530268568374024399676496271231357483299626530479306176701812009062837002753682997911955039838043243957018053908963735295808848895194382784851898744457617588596514150342550918409483421719083464054180975772193218566687716374835771278000
f(10)=35963384976013600221633143337551685232042274331716937193457988184210316173364541299559484059991075134642155769929334162668728911487969801446788420097423815774579842595685083935975795696162196029995423591647754045556621795240335586066575664505425125562867802, p(10)=384130179466225445700872327670375022441096967895152423624783223384046075215032458091605752041332062122429035573407023707607875507521438296803932869339244072370840974662110682441955466267339198871576036919765265983307948719274105051448137507694747252345484373475180174877166635057112561870988118618609212347768616224784538093370145707302387367636873647548080210112197422810627564136410513769512890658858649452254571545176781302049705974398681817260942904618160945324297701513488572810438000480957778440222590956000
384130179466225445700872327670375022441096967895152423624783223384046075215032458091605752041332062122429035573407023707607875507521438296803932869339244072370840974662110682441955466267339198871576036919765265983307948719274105051448137507694747252345484373475180174877166635057112561870988118618609212347768616224784538093370145707302387367636873647548080210112197422810627564136410513769512890658858649452254571545176781302049705974398681817260942904618160945324297701513488572810438000480957778440222590956000
2020-10-28 10:31
快速回复:想问一下这2个题的写法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031834 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved