一个核电站有 n 个放核物质的坑,排列在一条直线上。如果连续 m 个坑中放入核物质就会发生爆炸,所以某些坑中就不能放核物质。
本题的任务是:对于给定的 n 和 m ,求不发生爆炸的放置核物质的方案总数。
【输入】
两个正整数 n 和 m ,之间用一个空格隔开。
【输出】
一个正整数,表示方案总数。
【样例输入】
4 3
【样例输出】
13
递归,上代码
1 #include<iostream> 2 using namespace std; 3 int m,n,sum=0; 4 void make(int cur,int lx) 5 { 6 if(cur==n+1) 7 { 8 sum++; 9 return; 10 } 11 if(lx<=m-1) 12 make(cur+1,lx+1); 13 make(cur+1,1); 14 } 15 int main() 16 { 17 cin>>n>>m; 18 make(1,1); 19 cout<<sum; 20 return 0; 21 }
不知怎么回事, 网 站就是不给我过
气 得 我
想 砸 电脑,我写的
程 序 哪
里 不对了?我明明 样例过了!!!
别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动
刚刚我用的是递归,我换个思路,用递推试一试。。。
1 #include<iostream> 2 using namespace std; 3 long long ans,a[60][60]; 4 int n,m; 5 int main() 6 { 7 cin>>n>>m; 8 a[1][0]=1; 9 a[1][1]=1; 10 for(int i=2;i<=n;i++) 11 { 12 for(int j=0;j<m;j++) 13 a[i][0]+=a[i-1][j]; 14 for(int j=1;j<m;j++) 15 a[i][j]=a[i-1][j-1]; 16 } 17 for(int i=0;i<m;i++) 18 ans+=a[n][i]; 19 cout<<ans; 20 return 0; 21 }
历 尽千辛万苦
我终 于 让
网 站 给
我过了, 真 的
好 不 容易啊!!