c++平方和,(帮个忙,qwq)?

时间:1s 空间:256M 题目描述:求12+22+...+n2的值输入格式:一行一个整数n输出格式: 按题目描述输出样例输入1:3样例输出1:14约定:n<=1e18提示:

第1个回答  2020-08-13
根据题目的要求:约定:n<=1e18,时间1s。如果按照for循环逐个累加平方和,当n很大时,必定超时。不过也有办法,数学问题就用数学去解决,可以证明
1^2+2^2+3^2+...+n^2=n(n+1)(2n+1)/6
程序就很简单了,还有一个问题就是n的类型,因为约定:n<=1e18,需要用到64位整型来表示,long long就可以。
#include <stdio.h>
int main()

{

long long n, sum;

scanf("%lld", &n);

sum = n * (n + 1) * (2 * n + 1) / 6;

printf("%lld", sum);

}
第2个回答  2020-08-13
#include <cstdio>
int main(){
long long n, sum;
scanf("%lld", &n);
sum = n * (n + 1) * (2 * n + 1) / 6;
printf("%lld", sum);
}

c++平方和,(帮个忙,qwq)?
根据题目的要求:约定:n<=1e18,时间1s。如果按照for循环逐个累加平方和,当n很大时,必定超时。不过也有办法,数学问题就用数学去解决,可以证明 1^2+2^2+3^2+...+n^2=n(n+1)(2n+1)\/6 程序就很简单了,还有一个问题就是n的类型,因为约定:n<=1e18,需要用到64位整型来表示,long ...

c++程序运行的时候出现press any key to continue?
出现 press any key to continue 其实表示程序已经运行结束了,所以你按键会退出。你写的程序有错误,正确的 scanf 应该是 scanf("%d",&n); ,改过来就好了。

C++编程求出1到n之间的5或9倍数的整数之和
if (n<1) cout<<"请重新输入:";改为 if (n<1){cout<<"请重新输入:";cin>>n;} 最终完善:include<iostream>using namespace std;int main(){int n,i,j=0;cout<<"请输入整数:";cin>>n;if (n<1){do{cout<<"请重新输入:";cin>>n;}while(n<1);\/\/这里do-while的作用:...

相似回答