#include<iostream> /* */ |
不知道為什麼
人工輸入"1 2 2"的結果是"3"
送上去的結果卻變成"2"
我把有修改的地方變色處理了 大概了解一下!
#include<iostream>
#define K 40
using namespace std;
int main()
{
int i,j,a[K][K]={0};
for(i=0,j=0;i<K;i++,j++)
a[0][i]=a[j][0]=1;
for(i=1;i<K;i++)
for(j=1;j<K;j++)
a[i][j]=a[i-1][j]+a[i][j-1];
int n,h;
while(cin>>n>>h>>h)
{
int ni,nj,I,s=0,ck=0;
for(i=0,j=1;i<K&&!ck;i++,j++)
if(a[i][j]==n)
{
ni=i;
nj=j;
ck++;
break;
}
for(i=0,j=0;i<K&&!ck;i++,j++)
if(a[i][j]==n)
{
ni=i;
nj=j;
ck++;
break;
}
if(h%2==0)
{
nj-=(h/2);
ni-=(h/2-1);
for(i=ni,I=0;i<ni+h && I<h;i++,I++)
for(j=nj;j<nj+h-I;j++)
s+=a[i][j];
}
else
{
ni-=(h-1)/2;
nj-=(h-1)/2;
for(i=ni,I=0;i<ni+h && I<h;i++,I++)
for(j=nj;j<nj+h-I;j++)
s+=a[i][j];
}
cout<<s<<endl;
}
system("pause");
return 0;
}