列表

详情


NC218581. 数字金字塔

描述

现在有一个数字金字塔,它的第层有个数字,第层有个数字,……,第层有个数字,形如:



现在我们希望你能够求从第层到第层的数字和。
由于答案可能过大,输出对取模的结果。

输入描述

第一行一个正整数,表示测试组数。
接下来行,每行一个正整数,表示求第层到第层的和。

输出描述

每行一个整数表示对取模后的结果。

示例1

输入:

3
2
6
1234

输出:

7
161
255237422

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++11) 解法, 执行用时: 45ms, 内存消耗: 2052K, 提交时间: 2021-03-22 19:45:03

#include<bits/stdc++.h>
using namespace std;

const int mod=998244353;

int T,n;

int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		long long ans=4LL*n*n*n+3LL*n*n-n;
		ans/=6;
		printf("%d\n",ans%mod);
	}
} 

C 解法, 执行用时: 37ms, 内存消耗: 1396K, 提交时间: 2023-01-09 19:14:37

#include<stdio.h>
int main()
{long n,i,t;
long long s;
scanf("%d",&t);
while(t--)
{scanf("%ld",&n);
    s=0;
for(i=1;i<=n;i++)
{
s=s+i*(2*i-1);}
printf("%lld\n",s%998244353);}}

Python3 解法, 执行用时: 865ms, 内存消耗: 5540K, 提交时间: 2022-07-03 11:47:19

for _ in range(int(input())):
    x=int(input())
    print(x*(x+1)*(4*x-1)//6%998244353)

上一题