PTA | 大勾股定理

目录

题目:

输入格式:

输出格式:

输入样例:

输出样例:

 代码:

无注释版:

有注释版:


题目:

大勾股定理是勾股定理的推广:对任何正整数 n 存在 2n+1 个连续正整数,满足前 n+1 个数的平方和等于后 n 个数的平方和。例如对于 n=1 有 32+42=52;n=2 有 102+112+122=132+142 等。给定 n,本题就请你找出对应的解。

输入格式:

输入在一行中给出正整数 n(≤104)。

输出格式:

分两行输出满足大勾股定理的解,格式如下:

a[0]^2 + a[1]^2 + ... + a[n]^2 =
a[n+1]^2 + ... + a[2n]^2

其中解的数列 a[0] ... a[2n] 按递增序输出。注意行首尾不得有多余空格。

输入样例:

3

输出样例:

21^2 + 22^2 + 23^2 + 24^2 =
25^2 + 26^2 + 27^2

代码长度限制16 KB,时间限制250 ms,内存限制64 MB,栈限制8192 KB

 代码:

无注释版:
#include
using namespace std;
#define int long long
signed main(){
	int n;
	cin>>n;
	int p=n*(2*n+1);
	for(int i=p;i<=n+p;i++){
		cout<
有注释版:
#include  // 引入所有标准库,包括算法、容器和输入输出流等

using namespace std;  // 使用标准命名空间,省去书写std::

#define int long long  // 将int定义为long long,避免溢出问题,保证处理大数

signed main() {  // 主函数
    int n;
    cin >> n;  // 读取输入的正整数n
    
    // 计算起始的数p,它代表我们从哪个数字开始,计算公式为n*(2n+1)
    int p = n * (2 * n + 1);

    // 输出前n+1个数的平方和,范围是从p到p+n(包括p)
    for (int i = p; i <= n + p; i++) {  // i从p开始,到p+n结束
        cout << i << "^2";  // 输出i的平方
        if (i != n + p) cout << " + ";  // 如果i不是最后一个数,则在后面加上 " + "
        else cout << " =\n";  // 如果是最后一个数,则输出等号并换行
    }

    // 输出后n个数的平方和,范围是从p+n+1到p+2n(包括p+2n)
    for (int i = n + p + 1; i <= n + p + n; i++) {  // i从p+n+1开始,到p+2n结束
        cout << i << "^2";  // 输出i的平方
        if (i != n + p + n) cout << " + ";  // 如果i不是最后一个数,则在后面加上 " + "
    }

    cout << "\n";  // 输出一个换行,结束输出
}

你可能感兴趣的:(PTA,算法,数据结构,c++)