回 帖 发 新 帖 刷新版面

主题:入门必做的题

1.  给定等式  A B C D E     其中每个字母代表一个数字,且不同数字对应不
                    D F G     同字母。编程求出这些数字并且打出这个数字的
             +      D F G     算术计算竖式。

             ───────

                X Y Z D E



  2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
  人参加了竞赛:

   (1)A参加时,B也参加;

   (2)B和C只有一个人参加;

   (3)C和D或者都参加,或者都不参加;

   (4)D和E中至少有一个人参加;

   (5)如果E参加,那么A和D也都参加。



  3. 打印一个 N*N 的方阵,N为每边           N=15  打印出下面图形
 字符的个数(3<N<20), 要求最               TTTTTTTTTTTTTTT
 外一层为"T", 第二层为"J", 从第三层               TJJJJJJJJJJJJJT
 起每层依次打印数字 1,2,3,...                     TJ11111111111JT
 (右图以N为15为例)                           TJ12222222221JT
                                                  TJ12333333321JT
                                                  TJ12344444321JT
                                                  TJ12345554321JT
                                                  TJ12345654321JT
                                                  TJ12345554321JT
                                                  TJ12344444321JT
                                                  TJ12333333321JT
                                                  TJ12222222221JT
                                                  TJ11111111111JT
                                                  TJJJJJJJJJJJJJT
                                                  TTTTTTTTTTTTTTT



  4. 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
  出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
  编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。

        1  2  3  4  5
        2  3  4  5  1
        3  4  5  1  2
        4  5  1  2  3
        5  1  2  3  4


  5. 输入一个十进数,将其转换成 N 进制数(0<N<=16)。

回复列表 (共635个回复)

261 楼

强哦~~!!
不过有点答案就好了~!!
有点答案可以拿来做参考~!

262 楼

进了大厅还以为入了门,,看了这贴才知道原来我进的是无门的大厅~

263 楼

哇,cool 毙了,这样的算简单,到现在我才认识到我自己有多肤浅呀
真是长了见识了!!!

264 楼


现在还是个新手,我一定好好的做下这些题目。太感谢楼主了。

265 楼

第4题

对某楼前面提出的n!(n-1)!...2!1!这个解,或者n!(n-1)!暂时不能赞同
用递归穷举所有可能的结果
计算结果是
3阶,12种
4阶,576种
5阶,1161280种
6阶,计算机已经吃不消算了
如果加打印所有结果,5阶要将近半分钟才有结果
如加一个验算过程,4阶的576种解没有重复,5阶计算机又吃不消了

不知是否算法有错误,望高手指点

程序如下(可读性太差!):
int num = 0;
//int    w = 0 , b[500000][50];
int    count(int n , int x , int y , int a[][10])
{
    int i,j,z,p=0;    
    for(z=1,p=0;z<=n;z++,p=0)
    {
        for(i=0;i<x;i++)
            if(a[i][y]==z)
            {
                p=1;
                break;
            }
        for(j=0;j<y;j++)
            if(a[x][j]==z)
            {
                p=1;
                break;
            }
        if(p==1)    continue;
        else
        {    
            a[x][y]=z;               
            if(x==n-1    &&    y==n-1)
            {
            //以下是验算
            /*    for(i=0;i<n;i++)
                {
                    for(j=0;j<n;j++)
                        b[num][i+j*n]=a[i][j];
                }
                for(i=0;i<num;i++)
                {
                    for(j=0;j<n*n;j++)
                    {
                        if(b[i][j]!=b[num][j])
                            break;
                    }
                    if(j==n*n)    w++;
                }
            */
            //    以下是打印             
            /*     for(i=0;i<n;i++)
                {
                    for(j=0;j<n;j++)
                        printf("%d ",a[i][j]);
                    printf("\n");
                }
                printf("----------------\n");
            */
                num++;
                return    1;
            }
            else
            {
                if(y+1<n)
                    count(n,x,y+1,a);
                else
                    count(n,x+1,0,a);
            }
        }
    }
}

void main()
{
    int    n,a[10][10],i,j;
    printf("输入阶数:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            a[i][j]=0;   
    count(n,0,0,a);
    printf("共有%d种解",num);
//    printf("\n其中有%d项重复",w);
}

266 楼

很多都是经典的,这也算入门
太难了

267 楼

加入群:8451632

268 楼

开始时
[em10]
但是,我相信经过努力[em6],一定会[em2]

269 楼

顶一下
谢谢了

270 楼

好题,正找些东东做做呢,狂顶!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册