#include<bits/stdc++.h>
#include<math.h>
#include<algorithm>
using namespace std;
long long fac(int x)
{
register int i;
long long f = 1;
for (i = 1;i <= x;i++)
f *= i;
return f;
}
int f(int m, int n)
{
int i, j;
int ans = 1;
if (m < n - m) m = n - m;
for (i = m + 1; i <= n; i++) ans *= i;
for (j = 1; j <= n - m; j++) ans /= j;
return ans;
}
int main()
{
int i, j, n, a[20],b=0,c;
cin >> n;
if (n == 1) cout << 0;
else
{
a[0] = 1;a[1] = 2;
for (i = 3;i <= n - 1;i++)
{
b = 0;
c = 1;
for (j = i - 1;j >= 1;j--)
{
b += f(c, i + 1)*a[j - 1];
c++;
}
a[i - 1] = fac(i + 1) - b - 1;
}
cout << a[n - 2];
}
return 0;
}
2307: 贴瓷砖
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[31];
a[1]=1;
a[2]=3;
for(int i=3;i<=30;i++){
a[i]=a[i-1]+2*a[i-2];
}
int t,n;
cin>>t;
for(int i=1;i<=t;i++){
cin>>n;
cout<<a[n]<<endl;
}
}
2390: 骨牌铺法
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
long long a[51];
a[1]=1;
a[2]=2;
a[3]=4;
for(int i=4;i<=n;i++){
a[i]=a[i-1]+a[i-2]+a[i-3];
}
cout<<a[n];
}
2255: 杨辉三角
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int data[30][30] = {1};
printf("");
scanf("%d", &n);
for (int i = 1; i < n; i++)
{
data[i][0] = 1;
for (int j = 1; j < i + 1; j++)
{
data[i][j] = data[i - 1][j] + data[i - 1][j - 1];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < i + 1; j++)
{
printf("%d ", data[i][j]);
}
printf("\n");
}
return 0;
}
1118: Pell数列
#include <iostream>
using namespace std;
int a[11];
int main(){
a[1]=1;
a[2]=2;
for(int i=3;i<=10;i++){
a[i]=(a[i-1]*2)+a[i-2];
}
cout<<a[10];
}
1115: 银行存款
#include <bits/stdc++.h>
using namespace std;
int main(){
double a[49];
a[48]=0;
for(int i=47;i>=0;i--){
a[i]=(a[i+1]+1000)/1.01;
}
printf("%.2f",a[0]);
}