问题描述
由集合
M
=
{
2
x
3
y
∣
x
≥
0
y
≥
0
}
M=\{ 2^x3^y|x \ge 0 y \ge 0 \}
M={2x3y∣x≥0y≥0} 元素组成的复合幂序列,求复合幂序列的指数和
x
+
y
≤
n
x+y \le n
x+y≤n (正整数 n 从键盘输入) 的各项的和。
M
=
∑
x
+
y
=
1
n
2
x
3
y
,
x
≥
0
,
y
≥
0
M = \sum_{x+y=1}^{n}{2^x3^y} ,x \ge 0, y \ge0
M=x+y=1∑n2x3y,x≥0,y≥0
规律总结
当 x + y = 0 时 , s ( 0 ) = 2 0 3 0 = 1 当 x + y = 1 时 , s ( 1 ) = 2 1 3 0 + 2 0 3 1 = 2 + 3 当 x + y = 2 时 , s ( 2 ) = 2 2 3 0 + 2 1 3 1 + 2 0 3 2 = 2 s ( 1 ) + 3 2 当 x + y = 3 时 , s ( 3 ) = 2 3 3 0 + 2 2 3 1 + 2 1 3 2 + 2 0 3 3 = 2 s ( 2 ) + 3 3 一 般 的 : 当 x + y = k 时 , s ( k ) = 2 s ( k − 1 ) + 3 k \begin{aligned} &当x+y=0 时,s(0) = 2^03^0 = 1\\ &当x+y=1时,s(1) = 2^13^0+2^03^1=2+3\\ &当x+y=2时,s(2) =2^23^0+2^13^1+2^03^2 =2s(1)+3^2 \\ &当x+y=3时,s(3) = 2^33^0+2^23^1+2^13^2+2^03^3 = 2s(2)+3^3\\ &一般的:当x+y=k时,s(k) = 2s(k-1) + 3^k \end{aligned} 当x+y=0时,s(0)=2030=1当x+y=1时,s(1)=2130+2031=2+3当x+y=2时,s(2)=2230+2131+2032=2s(1)+32当x+y=3时,s(3)=2330+2231+2132+2033=2s(2)+33一般的:当x+y=k时,s(k)=2s(k−1)+3k
程序源代码
#include<stdio.h>
void main(){
int k,n;
long sum,t,s[100];
printf("请输入幂指数至多为n:");
scanf("%d",&n);
t = 1;
s[0] = 1;
sum = 1;
for(k = 1; k <= n; k++){
t = t * 3;
s[k] = 2 * s[k - 1] + t;
sum += s[k];
}
printf("幂指数和至多为%d的幂序列之和为:%ld\n",n,sum);
}
``