标题:将N种不同的数字填写到正五角星的顶角处,每种数字可以使用多次或者不使用。 ...
只看楼主
zm12345
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-5-23
结帖率:0
已结贴  问题点数:20 回复次数:4 
将N种不同的数字填写到正五角星的顶角处,每种数字可以使用多次或者不使用。
萌妹子最近在玩一个填数字的游戏:将N种不同的数字填写到正五角星的顶角处,每种数字可以使用多次或者不使用。

一种填写方案经过旋转得到的不同方案算作一种。萌妹子想知道一共有多少种不同的填写方案,你可以帮她解决吗?



有多组测试用例,每组测试用例包含一个整数N,代表萌妹子有N种不同的数字(0<N<=2000)。



输出对于N种不同数字的填写方案数。


样例输入

1
2
3
123


样例输出

1
8
51
5630611467




搜索更多相关主题的帖子: 五角星 游戏 五角星 游戏 
2016-05-23 22:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
程序代码:
/*
只填1种数,每种都用到,有1种方案
只填2种数,每种都用到,有6种方案
只填3种数,每种都用到,有30种方案
只填4种数,每种都用到,有48种方案
只填5种数,每种都用到,有24种方案
所以,填N种数的方案 = N中取1的数量*1 + N中取2的数量*6 + N中取3的数量*30 + N中取4的数量*48 + N中取5的数量*24
例如
1: 1(1+0+0+0+0)
2: 8(2+6+0+0+0)
3: 51(3+18+30+0+0)
4: 208(4+36+120+48+0)
5: 629(5+60+300+240+24)
6: 1560(6+90+600+720+144)
7: 3367(7+126+1050+1680+504)
8: 6560(8+168+1680+3360+1344)
9: 11817(9+216+2520+6048+3024)
*/

#include <stdio.h>

int main( void )
{
    for( unsigned long long n; scanf("%llu",&n)==1 && n<=2000; )
        printf( "%llu\n", n + n*(n-1)*3 + n*(n-1)*(n-2)*5 + n*(n-1)*(n-2)*(n-3)*2 + n*(n-1)*(n-2)*(n-3)*(n-4)/5 );

    return 0;
}
2016-05-24 10:28
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:10 
原来是搞算法的题,差点想遍历了。
2016-05-24 11:01
zm12345
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-5-23
得分:0 
回复 2楼 rjsp
“只填1种数,每种都用到,有1种方案
 只填2种数,每种都用到,有6种方案
 只填3种数,每种都用到,有30种方案
 只填4种数,每种都用到,有48种方案
 只填5种数,每种都用到,有24种方案”
这个是怎么算出来的?

2016-05-24 18:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用zm12345在2016-5-24 18:48:26的发言:

“只填1种数,每种都用到,有1种方案
 只填2种数,每种都用到,有6种方案
 只填3种数,每种都用到,有30种方案
 只填4种数,每种都用到,有48种方案
 只填5种数,每种都用到,有24种方案”
这个是怎么算出来的?

你嫌笔算麻烦,就写段代码跑呗
2016-05-24 23:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-465174-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.207675 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved