多层累加

问:

∑ i = 1 n ∑ j = 1 m x i y j \displaystyle\sum_{i=1}^{n}\displaystyle\sum_{j=1}^{m}x_iy_j i=1nj=1mxiyj = ∑ j = 1 m ∑ i = 1 n x j y i \displaystyle\sum_{j=1}^{m}\displaystyle\sum_{i=1}^{n}x_jy_i j=1mi=1nxjyi

  • 验证代码
sum1 = 0
for i in range(1,5):
    for j in range(1,6):
        sum1 = sum1 + j * i
sum2 = 0
for i in range(1,6):
    for j in range(1,5):
        sum2 = sum2 + j * i
print(sum1==sum2)
  • 输出结果

True

问:

∑ i = 1 n ∑ j = 1 m x i y j \displaystyle\sum_{i=1}^{n}\displaystyle\sum_{j=1}^{m}x_iy_j i=1nj=1mxiyj = ∑ i = 1 n x i ∗ ∑ j = 1 m y j \displaystyle\sum_{i=1}^{n}x_i*\displaystyle\sum_{j=1}^{m}y_j i=1nxij=1myj

  • 验证代码
sum1 = 0
for i in range(1,5):
    for j in range(1,6):
        sum1 = sum1 + j * i
sum3 = 0
sum4 = 0
for i in range(1,6):
    sum3 += i
for j in range(1,5):
    sum4 += j
print(sum1 == sum3*sum4)
  • 输出结果

True

结论
1.多层累加与for循环相同
2.满足交换律和结合率

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,可以使用嵌套的可变参数列表来封装多层三个点的函数。具体实现方法是,在调用一个封装了三个点的函数时,将可变参数列表作为参数传递给下一层函数。下面是一个示例代码,演示如何封装多层三个点的函数: ``` #include <stdarg.h> #include <stdio.h> double average(int num, ...) { va_list arguments; double sum = 0; // 初始化可变参数列表 va_start(arguments, num); // 读取可变参数列表中的所有参数,并将它们累加起来 for (int i = 0; i < num; i++) { sum += va_arg(arguments, double); } // 结束可变参数列表 va_end(arguments); // 计算平均值并返回 return sum / num; } void print_average(const char* format, int num, ...) { va_list arguments; // 初始化可变参数列表 va_start(arguments, num); // 调用已经封装了三个点的函数,计算平均值 double result = average(num, arguments); // 输出结果 vprintf(format, arguments); // 结束可变参数列表 va_end(arguments); } void print_averages(int num, ...) { va_list arguments; // 初始化可变参数列表 va_start(arguments, num); // 调用封装了三个点的函数,计算每组数据的平均值并输出 for (int i = 0; i < num; i++) { int count = va_arg(arguments, int); const char* format = va_arg(arguments, const char*); print_average(format, count, arguments); } // 结束可变参数列表 va_end(arguments); } int main() { // 调用封装了多层三个点的函数,计算多组数据的平均值并输出 print_averages(2, 3, "Average of three numbers = %f\n", 2.0, 3.0, 4.0, 2, "Average of two numbers = %f\n", 1.0, 2.0); return 0; } ``` 在上面的代码中,我们定义了一个`print_averages`函数,它接受一个整数`num`和若干个参数。在函数内部,我们首先初始化可变参数列表,然后使用一个循环来遍历每组数据。对于每组数据,我们首先读取参数列表中的两个参数:一个整数`count`表示数据数量,和一个格式化字符串`format`表示输出格式。然后,我们调用`print_average`函数,将可变参数列表传递给它,计算平均值并输出。最后,我们结束可变参数列表。在`main`函数中,我们调用`print_averages`函数,计算多组数据的平均值并输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值