C语言:铺地砖的问题i

Python013

C语言:铺地砖的问题i,第1张

#include<stdio.h>

int F(int n)

{

    int i,p

    p=1

    for(i=1i<=ni++)

    {

        p*=i

    }

    return p

}

int f(int m,int n)

{

    int i,p

    p=1

    for(i=n-m+1i<=ni++)

    {

        p*=i

    }

    return p

}

int main()

{

    int T,i,n,count,j,k,l,m

    scanf("%d",&T)

    for(i=0i<Ti++)

    {

        count=0

        scanf("%d",&n)

        for(j=0j<=50j++)

        {

            for(k=0k<=25k++)

            {

                for(l=0l<=16l++)

                {

                    if(n==j+2*k+3*l)

                    {m=j+k+l

                     count+=F(m)-(F(j)-1)*(f(j,m)/F(j))-(F(k)-1)*(f(k,m)/F(k))-(F(l)-1)*(f(l,m)/F(l))

            }

        }

        printf("%d\n",count)

    }

    return 0

}

#include<stdio.h>

main()

{

int m,n,a,i,j,s=0

printf(" enter m and n\n")

scanf("%d %d",&m,&n)

int b[m][n]

if(m>n)

{

i=m

m=n

n=i

s=1

}

int c[m][n]

for(i=0i<mi++)

{

for(j=0j<nj++)

c[i][j]=0}

c[0][0]=1

for(a=1a<ma++)

{

if(a%2!=0)

{c[0][a]=c[0][a-1]+1

for(i=1,j=a-1i>=0&&i<m&&j>=0&&j<ni++,j=a-i)

c[i][j]=c[i-1][j+1]+1 }

else

{c[a][0]=c[a-1][0]+1

for(i=a-1,j=1i>=0&&i<m&&j>=0&&j<ni--,j=a-i)

c[i][j]=c[i+1][j-1]+1}

}

for(a=ma<na++)

{

if(a%2!=0)

{c[0][a]=c[0][a-1]+1

for(i=1,j=a-1i>=0&&i<m&&j>=0&&j<ni++,j=a-i)

c[i][j]=c[i-1][j+1]+1 }

else

{c[m-1][a+1-m]=c[m-1][a-m]+1

for(i=m-2,j=a+2-mi>=0&&i<m&&j>=0&&j<ni--,j=a-i)

c[i][j]=c[i+1][j-1]+1}

}

for(a=na<=m+n-2a++)

{

if(a%2!=0)

{c[a+1-n][n-1]=c[a-n][n-1]+1

for(i=a+2-n,j=n-2i>=0&&i<m&&j>=0&&j<ni++,j=a-i)

c[i][j]=c[i-1][j+1]+1 }

else

{c[m-1][a+1-m]=c[m-1][a-m]+1

for(i=m-2,j=a+2-mi>=0&&i<m&&j>=0&&j<ni--,j=a-i)

c[i][j]=c[i+1][j-1]+1}

}

if(s==1)

{for(i=0i<ni++)

for(j=0j<mj++)

b[i][j]=c[j][i]

for(i=0i<ni++)

{

for(j=0j<mj++)

printf("%d ",b[i][j])

putchar('\n')

}

}

else

for(i=0i<mi++)

{

for(j=0j<nj++)

printf("%d ",c[i][j])

putchar('\n')}

}

#include <stdio.h>

void sort(int* a,int n)

{

int i,j,t

for(i=0i<ni++)

{

for(j=i+1j<nj++)

{

if(a[i]<a[j])

{

t=a[i]

a[i]=a[j]

a[j]=t

}

}

}

}

int main()

{

int n,i,j

int l

int a[50]

scanf("%d",&n)

for(i=0i<ni++)

{

scanf("%d",&l)

for(j=0j<lj++)

{

scanf("%d",&a[j])

}

sort(a,l)

for(j=0j<lj++)

{

printf("%d ",a[j])

}

printf("\n")

}

return 0

}