首页 > 试题广场 >

牛牛学数列4

[编程题]牛牛学数列4
  • 热度指数:16230 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt} 请你帮助牛牛计算公式以下公式的结果:
\hspace{23pt}\bullet\, 1 +(1+2)+(1+2+3)+\dots+(1+2+3+\dots+n).

输入描述:
\hspace{15pt}输入一个整数 n(1 \leqq n \leqq 100) 如题意描述。


输出描述:
\hspace{15pt}输出一个整数表示公式计算结果。
示例1

输入

4

输出

20
#include<stdio.h>
int main(){
    int i_input,i_mid_var=1,sum=1;
    scanf("%d",&i_input);
    if(i_input==1) printf("1");
    else
    {
        for(int i=2 ; i <= i_input ; i++)
        {
            i_mid_var = i_mid_var + i;
            sum = sum + i_mid_var;
        }
        printf("%d",sum);
    }
    return 0;
}

发表于 2022-06-15 09:42:38 回复(0)
#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int i=1,count=0,sum=0;
    for(;i<=n;i++)
    {
        count+=i;
        sum+=count;
    }
    printf("%d",sum);

    return 0;
}
发表于 2022-04-24 10:36:52 回复(0)
#include <iostream>
using namespace std;

int main()
{
    long long n;
    cin >> n;
    long long sum = 0;
    long long a = 0, b = 1;
    for (int i = 1; i <= n; i ++ )
    {
        b = i + a;
        sum += b;
        a = b;
    }
    cout << sum << endl;
}

发表于 2022-02-26 14:19:28 回复(0)
// 清爽版,我是新手,别喷!!!
#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    int sum = 0;    
    for (int i = 1; i <= n; i++)    
    {
        int result = 0;
        for (int ret = 1; ret <= i; ret++)
        {
            result += ret;
        }
        sum += result;
    }
    printf("%d", sum);
    return 0;
}

// 详细解释版
#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    int sum = 0;    // 统计总和
    for (int i = 1; i <= n; i++)    // 一直循环到 i = n 为止
    {
        int result = 0; // 每次进来都初始化为 0,为了重置下面的 for 循环 上次一次留下来的结果
        for (int ret = 1; ret <= i; ret++) // 每次循环都是从 1 开始加起,因为每次 i++ 的时候,都要从 1 加到 i 当前值为止
        {
            result += ret;
        }
        sum += result; // 把上面 上一次循环的结果 赋值给 sum
    }
    printf("%d", sum);
    return 0;
}
发表于 2025-06-15 16:22:49 回复(0)
#include <stdio.h>

int main() {
    int x;
    int sum1,sum;
    sum=0;
    scanf("%d",&x);
    for(int i=1;i<=x;i++){
        sum1=0;
        for(int j=1;j<=i;j++){
            sum1+=j;
        }
        sum+=sum1;
    }
    printf("%d",sum);
    return 0;
}
发表于 2024-11-26 17:12:18 回复(0)
n=int(input())
sum=0

for i in range(1,n+1):
    for j in range(1,i+1):
        sum+=j

print(sum)

发表于 2024-10-21 09:39:51 回复(0)
n=int(input())
num=0
for i in range(1,n+1):
    num+=sum([i for i in range(1,i+1)])
print(num)

发表于 2023-07-28 09:47:20 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        int a=0;
        for(int i=1;i<=n;i++){
            a=a+(i*(i+1)/2);
        }
        System.out.println(a);
    }
}

发表于 2022-10-30 12:56:07 回复(0)
#include <stdio.h>
int fun(int n){
    if(n==1){
        return 1;
    }
    return n+fun(n-1);
}

int main() {
    int n,sum=0,s;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        s=fun(i);
        sum+=s;
       
    }
    printf("%d",sum);
}
发表于 2025-09-10 17:10:18 回复(0)
print((lambda n:sum([sum([i for i in range(1,m+1)]) for m in range(1,n+1)]))(eval(input())))
发表于 2025-08-22 20:25:38 回复(0)
n = input('');
Sn = 0;
temp = 0;

for i = 0:n
temp = temp + i;
Sn = Sn + temp;
end

fprintf('%d\n', Sn);
发表于 2025-08-19 21:11:39 回复(0)

引言

若你会一些数学知识,这道题的解法其实一行代码就能完成。

名称 表达式 求和公式
等差数列

平方和

立方和

三角数的和 / 四面体数
或者是


(本题解法)

这道题的推导

是写出
展开:
分开求和:
代入公式:

化简:

代码


#include <stdio.h>

int main() {
    int n = 0;

    scanf("%d", &n);

    /*
    * 规律:输入整数为 n,表示有 (n - 0) 个 1,(n - 1) 个 2,(n - 2) 个 3,
    * (n - (n - 1)) 个 n。即前 n (n >= 1 && n <= 100)项和为
    * (n - 0) * 1 + (n - 1) * 2 + (n - 2) * 3 + ... + 1 * n,
    * 
    * 因此这是一个三角数的和,即四面体数,这题可表示为求解第 n 个四面体数,
    * 公式:(n * (n + 1) * (n + 2) / 6)
    */
    // for (int count = 0; count < n; count++)
    // {
    //     sum += (n - count) * (count + 1);
    // }

    printf("%d", n * (n + 1) * (n + 2) / 6);

    return 0;
}
发表于 2025-08-07 14:31:39 回复(0)
两层循环简单实现:
#include <iostream>
using namespace std;

int main() {
    int n;
    cin>>n;
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            sum+=j;
        }
    }
    cout<<sum<<endl;
}

发表于 2025-07-22 17:12:24 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

            int n = in.nextInt();
                int sum= 0;
            for(int i=1;i<=n;i++){
                for(int j=1;j<=i;j++){
                    sum+=j;
                }
            }
                System.out.println(sum);
    }
}
发表于 2025-07-21 17:48:03 回复(0)
use std::io;

fn main() {
    let mut stdin = String::new();

    io::stdin()
        .read_line(&mut stdin)
        .expect("");

    let n: i64 = stdin
        .trim()
        .parse()
        .expect("");

    let result = n * (n + 1) * (n + 2) / 6;
    println!("{}", result);
}
发表于 2025-07-21 16:07:37 回复(0)
n = int (input())
sum = 0
for  i in range(1,n):
    # sum =1*n +2 *(n-1) + 3*(n-2)
    sum += i*(n-(i-1))
print(sum+n)
发表于 2025-07-17 15:03:58 回复(0)
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    int sum = 0;
    for(int i=1;i<=n;i++)
    {
        sum+=(i*(i+1)/2);
    }
    cout << sum;
}
包用公式的
发表于 2025-07-14 15:02:11 回复(0)
n = int(input())
Sn = 0

for i in range (1 , n+1):
    for j in range (1, i+1):
        Sn = Sn + j

print (Sn)
发表于 2025-07-13 17:15:54 回复(0)
a=int(input())
s=0
for i in range(1,a+1):
    s+=i*(a+1-i)
print(s)
发表于 2025-07-12 20:56:46 回复(0)
n = int(input())
#将每个括号里面的数存储在数组中,计算数组的和
S = [(0.5*v+0.5*v*v) for v in range(1,n+1)]
Sn = int(sum(S))
print(Sn)

发表于 2025-06-30 15:18:55 回复(0)