鱼C论坛

 找回密码
 立即注册
楼主: 欧拉计划

题目6:平方和与和平方的差是多少?

[复制链接]
发表于 2020-5-9 10:10:46 | 显示全部楼层
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.     int sum = 0;
  5.     for (int i = 1; i <= 100; ++i) {
  6.         for (int j = 1; j <= 100; ++j) {
  7.             if (j != i) {
  8.                 sum += i * j;
  9.             }
  10.         }
  11.     }

  12.     printf("%d", sum);
  13.     return 0;
  14. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 13:11:48 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-8-30 22:29 编辑
  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. long sum(long num)//求平方和
  4. {
  5.         long res1 = 0;
  6.         for (int i = 1; i <= num; i++)
  7.         {
  8.                 res1 += i * i;
  9.         }
  10.         return res1;
  11. }

  12. long square(long num)//求和的平方
  13. {
  14.         long res2 = 0;
  15.         for (int i = 1; i <= num; i++)
  16.                 res2 += i;
  17.         return res2 * res2;
  18. }

  19. void main()
  20. {
  21.         long a, b, num;

  22.         printf("请输入一个整数\n");
  23.         scanf_s("%ld", &num);
  24.         a = sum(num);
  25.         b = square(num);
  26.         if (a > b)
  27.         {
  28.                 printf("方和与和的平方的差 = %ld\n", a - b);
  29.         }
  30.         else
  31.         {
  32.                 printf("方和与和的平方的差 = %ld\n", b - a);
  33.         }
  34.         system("pause");

  35. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-24 13:32:08 | 显示全部楼层
  1. sum1 = 0
  2. for i in range(1,101):
  3.     sum1 += i ** 2
  4. sum1 = sum(range(1,101))**2 - sum1
  5. print(sum1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 20:57:36 | 显示全部楼层
  1. from time import time

  2. x = int(input('请输入所求的数字:'))
  3. t1 = time()
  4. def pfh(x):
  5.     a = 0
  6.     for i in range(x+1):
  7.         a = a + i*i
  8.     return a

  9. def hpf(x):
  10.     b = 0
  11.     for i in range(x+1):
  12.         b = b + i
  13.     return b*b

  14. print('所求平方和与和平方的差值为:%d' % (hpf(x)-pfh(x)))
  15. t2 = time()
  16. t=t2-t1
  17. print('耗时为:%s' % t)

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-2 16:19:51 | 显示全部楼层
  1. '''十个自然数的平方和是:12 + 22 + ... + 102 = 385
  2. 前十个自然数的和的平方是:(1 + 2 + ... + 10)2 = 552 = 3025
  3. 所以平方和与和的平方的差是 3025 - 385 = 2640。
  4. 找出前一百个自然数的平方和与和平方的差。'''

  5. def diff(num):
  6.     sum_square = 0
  7.     square_sum = 0
  8.     sum = 0
  9.     for i in range(1, num+1):
  10.         sum_square += i**2
  11.     for j in range(1, num+1):
  12.         sum += j
  13.     square_sum = sum**2
  14.     difference = square_sum - sum_square
  15.     print("前%d个自然数的平方和与和平方的差是: %d" %(num,difference))

  16. start_diff = time.time()
  17. diff(100)
  18. time_diff = time.time() - start_diff
  19. print("%f秒" %time_diff)
复制代码


前100个自然数的平方和与和平方的差是: 25164150
0.000499秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-5 11:33:12 | 显示全部楼层
def add_square(n):
    count = 0
    for i in range(n + 1):
        count += (i ** 2)
    return count

def square_add(n):
    count = 0
    for i in range(n + 1):
        count += i
    count = count ** 2
    return count

def sub_s(n):
    return (square_add(n) - add_square(n))

print(add_square(100))
print (square_add(100))
print(sub_s(100))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-4 11:37:10 | 显示全部楼层
  1. i= sum(range(1,101))**2
  2. j=0
  3. for each_num in range(1,101):
  4.         j+=each_num**2

  5. print(i-j)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-9 00:27:47 | 显示全部楼层
  1. #include <stdio.h>

  2. int main(void)
  3. {//时间复杂度O(1) 空间复杂度O(1)
  4.         int value = 100;
  5.         printf("result = %d", ((1+value)/2*value) * ((1+value)/2*value) - value*(value + 1)*(2 * value + 1)/6);
  6.         return 0;
  7. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-7 21:36:44 | 显示全部楼层
#include <iostream>
using namespace std;
int main()
{
        int sum1=0,sum2=0;
        for(int i=1;i<21;i++)
        {
                sum1+=i*i;
                sum2+=i;
                if(i==20)
                        sum1=sum2*sum2;
        }
        cout<<sum1-sum2<<endl;
        return 0;
}

用C++写的结果:43890
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-9 12:57:39 | 显示全部楼层
#(平方的和)与(和的平方) de 差 是多少
sum_square = 0
for i in range(100):
    sum_square += i ** 2

print("前100个自然数的平方的和是%d" % sum_square)

square_sum = 0
for j in range(100):
    square_sum += i

square_sum = square_sum ** 2
print("前100个自然数的和的平方是%d" % square_sum)

result = square_sum - sum_square
print("平方和与和的平方的差为%d" % result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-27 14:16:28 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<math.h>

  3. int mian(void)
  4. {
  5.         int result ;
  6.         unsigned int sum1 = 0,sum2 = 0;
  7.        
  8.         for(int i = 1;i<101;i++)
  9.         {
  10.                  sum1 += pow(i,2);
  11.         }
  12.        
  13.         sum2 = 99 * 100 /2 + 100 ;
  14.         sum2 *= sum2;
  15.        
  16.         result = sum2 - sum1;
  17.         printf("%d",result;
  18.        
  19.         return 0;
  20. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-9 13:42:05 From FishC Mobile | 显示全部楼层
#include<stdio.h>
#define max 100
int pow123(int a,int r)
{
    int y=a;
    for(int i=1; i<r; i++)
    {
        a*=y;
    }
    return a;
}
int main()
{
    int r;
    long ma=0,k=0;
    int a[max];
    int min;
    for(int i=0; i<max; i++)
    {
        a[i]=i+1;
    }
    for(int w=0; w<max; w++)//平方和and和的平方
     {
         r=pow123(a[w],2);
         k+=r;
         ma+=a[w];
     }
     min=pow123(ma,2);
    printf("%d",min-k);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-22 16:27:43 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a=0,b=0,c=0,result=0,i;
  5.        
  6.         for(i=1;i<=100;i++)
  7.         {
  8.                 a+=i*i;
  9.                 b+=i;
  10.         }
  11.        
  12.         c=b*b;
  13.         result=c-a;
  14.         printf("%d",result);
  15.        
  16.         return 0;
  17. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-7 21:48:07 | 显示全部楼层
Rust + Rayon并行化暴算:
  1. use rayon::prelude::*;
  2. use std::time::Instant;

  3. fn main() {
  4.     let now = Instant::now();
  5.     let num_pow: i32 = (1..101i32)
  6.     .into_par_iter()
  7.     .map(|x| x.pow(2))
  8.     .sum();
  9.     let num_sum: i32 = (1..101i32)
  10.     .into_par_iter()
  11.     .sum();
  12.     let num = num_sum.pow(2)- num_pow;
  13.     println!("{}", num);
  14.     println!("耗时{}毫秒。", now.elapsed().as_millis())
  15. }
复制代码

---
25164150
耗时0毫秒。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-6 20:20:04 | 显示全部楼层
  1. #include <stdio.h>

  2. int main() {
  3.         long long int pfh = 0, hpf = 0;
  4.         for (int i = 1; i <= 100; i++) {
  5.                 pfh += i * i;
  6.                 hpf += i;
  7.         }

  8.         printf("和平方-平方和   ->   %lld 与 %lld 的差为: %lld", pfh, hpf * hpf,
  9.                (pfh > (hpf * hpf) ) ? pfh - (hpf * hpf) : (hpf * hpf) - pfh);
  10.         return 0;
  11. }
复制代码

感觉不够漂亮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-28 22:07:31 | 显示全部楼层
  1. import time


  2. def sum_of_squares(n):
  3.     total = 0
  4.     for i in range(n + 1):
  5.         total += i * i

  6.     return total


  7. def root_sum_square(n):
  8.     num = sum(range(n+1))
  9.     return num * num


  10. start = time.time()
  11. val = root_sum_square(100) - sum_of_squares(100)
  12. print(val)
  13. end = time.time()
  14. print("time: %s" % (end - start))
复制代码

答案:25164150
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 00:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表