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