注册 登录
编程论坛 C语言论坛

C语言程序设计入门 一道题不懂思路 求帮助 十分感谢!

Anado 发布于 2019-11-25 21:17, 1770 次点击
题目(Description):

幂(power)指乘方运算的结果。nm指将n自乘m次,把nm看作乘方的结果,叫做n的m次幂。

构造一个递增序列,序列中的n个元素由2的幂和3的幂(互不相等)构成,如:2, 3, 4, 8, 9, ......,即:21, 31, 22, 23, 32, ......。

输入(Input):

序列元素个数n

输出(Output):

(1)序列的第n项;

(2)序列元素前n项之和。

示例(Sample):

输入(Input):

5

输出(Output):

9

26

[此贴子已经被作者于2019-11-26 00:06编辑过]

3 回复
#2
rjsp2019-11-26 09:47
nm指将n自乘m次
即:21, 31, 22, 23, 32, ......
贴完了题目后,劳驾看一眼贴得对不对嘛!

因为题目中没交代n的取值范围,所以这题别人做不了。
如果n<=50的话,可以用 uint32_t;如果n<=102的话,可以用 uint64_t;
再大的话,就不是一个小题目了

虽然题目因条件不足而完成不了,但整个遍历过程是很简单了,例如
程序代码:
#include <stdio.h>

int main( void )
{
    for( unsigned i=1,p2=2,p3=1,p=2; i<=50; ++i,p=(p2*2<p3*3?p2*=2:p3*=3) )
    {
        printf( "%u: %u\n", i, p );
    }
}
输出为
1: 2
2: 3
3: 4
4: 8
5: 9
……
48: 1073741824
49: 1162261467
50: 2147483648

#3
forever742019-11-26 20:04
r版主的代码犀利呀
粉丝值++
#4
Anado2019-11-27 15:09
回复 2楼 rjsp
谢谢!
1