发牌 胡俊杰买到库洛牌后,要将库洛牌分发给小伙伴们。

发牌 

胡俊杰买到库洛牌后,要将库洛牌分发给小伙伴们。第一天,小伙伴收到 1 张库洛牌;之后两天,(第二天和第三天),每天收到 2 张库洛牌;之后三天(第四 五 六 天),每天收到 3 张库洛牌;之后四天(第七 八 九 十 天),每天收到 4 张库洛牌……;这种发牌方式会一直延续下去。当连续N天收到N张库洛牌后,小伙伴会在之后的N+1天里,每天收到N+1张库洛牌。

输入格式:

在第一行输入发牌的天数n

输出格式:

输出只包含一行一个正整数,即小伙伴收到的总扑克牌数

输入样例:

6

输出样例:

在这里给出相应的输出。例如:

14

 我的java代码实现:

import java.util.Scanner;

public class OK {

    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入天数N:");
        int n = input.nextInt();
        int days=1;//days代表第一天
        int sum=0;
        while (n>=days){//你会发现n-1,n-2,n-3,n-4,比如:减去第一天立马又加上第一天总数,减去之后两天,又加上之后两天的总数。
            n-=days;
            sum+=days*days;//每段的实际总量,有几天就乘以几,比如:day=3,就是3*3=9;
            days++;//day=1时,为第一天;day=2时,等于之后两天;day=3时,等于之后三天。
        }
        //true 会执行大括号的内容
        //可能会有剩余的天数没有加上,那就在这里加上,比如之后四天 中的第七天,在上面的循环中可能会余下来一天,在这里要加上
            sum+=days*n;

        System.out.println("sum="+sum);
    }

}

 我的C++实现:

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int sum=0;
	int day=1;
	while(n>=day)
	{
		n-=day;
		sum+=day*day;
		day++;
	}
	if(n)
		sum+=day*n;
	cout<< sum;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_35207086/article/details/110928184
今日推荐