1968. 买水(h2o)
题目描述
小PP超喜欢喝水,所以他就去买水了。
商店里有 5 种水
第 1 种:商店里有无数瓶
第 2 种:商店里只有一瓶
第 3 种:商店里竟然有 4 瓶 。
第 4 种: 5 瓶5 瓶一包卖的
第 5 种: 2 瓶 2 瓶一包卖的
好奇心极强的小PP想买 n 瓶水,他想知道他有多少种买法。
输入
输入文件 h2o.in 的第一行包括一个正整数N
输出
输出文件h2o.out 有且仅有一个整数 , 为买水方案数。
样例输入
1
样例输出
3
数据范围限制
对于 10% 的数据: n<=10;
有 20% 的数据: n<=100000;
对于 100% 的数据: n<=2147483647;
我也不是神!
先暴力打表看看规律:
大家看什么,相信都知道了。
其实对于买N瓶,其实就是:1+2+3+4…+(N+1)
然后按照等差数列的公式:(首项+末项)*项数/2;
那本题的答案就是:
(1+n+1)*(n+1)/2
化简一下:(2+n)*(n+1)/2
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;
const int MAX=2147483647;
const int N=1e6;
long long n,ans;
int main()
{
fre(h2o);
scanf("%lld",&n);
printf("%lld\n",(2+n)*(n+1)/2);
return 0;
}