1996 汉诺塔VI

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1996

简单而言就是把n个盘子分成三堆(可以为0),有多少种分法。

之所以只考虑分成堆数,因为每堆只有一种排列方式。

用数学排列组合来找规律:

Code:

 1 #pragma warning(disable:4996) 
 2 
 3 //#define _CRT_SECURE_NO_WARNINGS
 4 
 5 #include<stdio.h>
 6 #include<stdlib.h>
 7 #include<string.h>
 8 #include<algorithm>
 9 #include<iostream>
10 #include<cmath>
11 using namespace std;
12 
13 int main()
14 {
15     int T;
16     double N;
17     cin >> T;
18     while (T--)
19     {
20         cin >> N;
21         printf("%.lf
", pow(3, N));
22     }
23     return 0;
24 }

注意:

题目输出结果没有用科学记数法,所以输出时要注意。

原文地址:https://www.cnblogs.com/CheeseIce/p/10804829.html