题目: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 }
注意:
题目输出结果没有用科学记数法,所以输出时要注意。