CODE[VS] 1262 不要把球传我

题目描述 Description

CCC的足球比赛和传统的足球比赛有一点不同, 一次进球当且仅当先后接触到球的4名队员的球衣编号是升序排列的。

球员的球衣编号从过1到99,并且每个人的编号都不同。

给出最后得分球员的球衣编号,请计算出有多少合法的球员组合能够产生这一进球。

 

输入描述 Input Description

输入一个整数1<=J<=99,代表进球球员的球衣编号

输出描述 Output Description

输出只有一行,包含一个整数代表有多少种组合能够使得最后进球的球员编号为J。

 

样例输入 Sample Input

样例输入 1: 4

样例输入 2: 2

样例输入 3: 90

样例输出 Sample Output

样例输出 1: 1

样例输出 2: 0

样例输出 3: 113564

数据范围及提示 Data Size & Hint

 

一看就是个找规律题,,,

感觉应该挺简单的。

是找出了规律。。

f[1]=f[2]=f[3]=0;

f[4]=1;

然后for循环,i从5到n,

f[i]=f[i-1]+3*(i-4);

这是根据图直接看出来的,,,

 

但好奇怪啊,,大数都过不了。。。

只能拿20分。。

好气啊。。。

 

正解是直接把结果的规律式推出来了。

(n-1)*(n-2)*(n-3)/6;

 

ac代码:

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7 
 8 int n;
 9 
10 int main()
11 {
12     scanf("%d",&n);
13     if(n<4) printf("0");
14     else printf("%d",(n-1)*(n-2)*(n-3)/6);
15     return 0;
16 }

 

 

 

 


如果你不开心,那我就把右边这个帅傻子分享给你吧,
你看,他这么好看,跟个zz一样看着你,你还伤心吗?
真的!这照片盯上他五秒钟就想笑了。
一切都会过去的。
时间时间会给你答案2333
posted @ 2018-06-17 21:51  孟东行#  阅读(160)  评论(0编辑  收藏  举报