首页 > 试题广场 >

小红的方神题spj

[编程题]小红的方神题spj
  • 热度指数:368 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}对于数组 a,我们定义它的退化状态为:取每个相邻两数之差的绝对值构成的新数组。换句话说,退化后的 a 数组是一个长度为 {\rm len}(a)-1 的数组,其第 i 个元素为 \lvert a_i - a_{i+1} \rvert
\hspace{15pt}小红构造了一个长度为 n 的数组 ,小芳想知道其连续进行 n-1 次退化后,最终生成的一个整数是多少。你能帮帮小芳吗?

输入描述:
\hspace{15pt}第一行输入一个整数 n\left(1 \leqq n \leqq 1000 \right)
\hspace{15pt}第二行输入  个整数


输出描述:
\hspace{15pt}输出一个整数,代表最后生成的整数。
示例1

输入

3
2 1 3

输出

1
#include <cmath>
#include <iostream>
using namespace std;
using intl = long long ;
const int M = 1000 ;
int main() {
    int n ; 
    cin >> n ;
    intl num[M] = {0} ;
    for (int i = 0 ; i < n ; ++i) {
        cin >> num[i] ;
    }

    for (int p = n-1 ; p>=0 ; p--) {
        for (int q = 0 ; q<p ; q++) {
            num[q] = abs(num[q]-num[q+1]) ;
        }
    }

    cout << num[0] ;
}

发表于 2026-01-18 11:44:24 回复(0)