回 帖 发 新 帖 刷新版面

主题:入门必做的题

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个回复)

521 楼

int型它有限制数值大小为-32768~32767,大于就会出错,应该使用long int

522 楼

貌似对入门来说难了点啊!~

523 楼


哪位写出了第一题,帮忙帖一下,谢谢了。[em18]

524 楼


第一题答案:

#include<iostream>

using namespace std;

int main()
{
    int a,b,c,d,e,f,g,x,y,z,i,j;
    int num1,num2,sum;
    int count[10]={ 0,0,0,0,0,0,0,0,0};
    bool multi_number = false;

    for( a=1 ; a<=9 ; a++ )
    {
        count[a]++;

        for( b=0 ; b<=9 ; b++)
        {
            if( count[b]>0 )
            {
                continue;
            }

            count[b]++;

            for( c=0 ; c<=9; c++ )
            {

                if( count[c]>0 )
                {
                    continue;
                }
                
                count[c]++;

                for( d=1 ; d<=9 ; d++ )
                {
                    if( count[d]>0 )
                    {
                        continue;
                    }

                    count[d]++;

                    

525 楼

奶奶的,一次发不下

526 楼


for( e=0 ; e<=9 ; e++ )
                    {                    
                        if( count[e]>0 )
                        {
                            continue;
                        }

                        count[e]++;

                        for( f=0 ; f<=9 ; f++ )
                        {    
                            if( count[f]>0 )
                            {
                                continue;
                            }

                            count[f]++;

                            for( g=0 ; g<=9 ; g++ )
                            {
                                if( count[g]>0 )
                                {
                                    continue;
                                }

                                count[g]++;

                                for ( x=1 ; x<=9 ; x++ )
                                {
                                    if( count[x]>0 )
                                    {
                                        continue;
                                    }

                                    count[x]++;

                                    for( y=0 ; y<=9 ; y++ )
                                    {
                                        if( count[y]>0 )
                                        {
                                            continue;
                                        }

                                        count[y]++;

                                        for ( z=0 ; z<=9 ; z++)
                                        {    
                                            if( count[z]>0 )
                                            {
                                                continue;
                                            }

                                            count[z]++;

527 楼


num1 = a*10000 + b*1000 + c*100 + d*10 +e;
                                            num2 = d*100 + f*10 + g;
                                            sum = x*10000 + y*1000 + z*100 + d*10 + e;
                                        
                                            if( sum == (num1+num2+num2)  )
                                            {
                                                cout<<a<<b<<c<<d<<e<<endl;
                                                cout<<"  "<<d<<f<<g<<endl;
                                                cout<<"+ "<<d<<f<<g<<endl;
                                                cout<<"_______"<<endl;
                                                cout<<x<<y<<z<<d<<e<<endl;
                                            }
                                            count[z]--;
                                        }
                                        count[y]--;
                                    }
                                    count[x]--;
                                }
                                count[g]--;
                            }
                            count[f]--;
                        }
                        count[e]--;
                    }
                    count[d]--;
                }
                count[c]--;
            }
            count[b]--;
        }
        count[a]--;
    }
    
    system("pause");

    return 0 ;
}

528 楼


我也是初学c++,我的qq 15965308,有兴趣的朋友加,共同交流.

529 楼


好多题哟。。。谢谢LZ..........[em11]

530 楼


自己研究着做做 希望可以独立完成 我是初学者

我来回复

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