回 帖 发 新 帖 刷新版面

主题:入门必做的题

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

411 楼

超过10000字?冤啊……把tab都删除了试试吧。嘿,成了。这个是抄的前面一位高手的,不管怎样,好歹算学会了,就当交个作业吧。

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

             ───────

                X Y Z D E

*/

#include <iostream>
using namespace std;

int main( )
{
int a, b, c, d, e, f, g, y, z; //x可以由a+1得到
for(a=1; a<10; a++)
for(b=0; b<10; b++)
if(b!=a)
for(c=0; c<10; c++)
if(c!=a && c!=b)
for(d=0; d<10; d++)
if(d!=a && d!=b && d!=c)
for(e=0; e<10; e++)
if(e!=a && e!=b && e!=c && e!=d)
for(f=0; f<10; f++)
if(f!=a && f!=b && f!=c && f!=d && f!=e)
for(g=0; g<=5; g+=5)
if(g!=a && g!=b && g!=c && g!=d && g!=e && g!=f)
for(y=0; y<10; y++)
if(y!=a && y!=b && y!=c && y!=d && y!=e && y!=f && y!=g)
for(z=0; z<10; z++)
if(z!=a && z!=b && z!=c && z!=d && z!=e && z!=f && z!=g && z!=y)
{
int x = a + 1;
if(x!=a && x!=b && x!=c && x!=d && x!=e && x!=f && x!=g && x!=y && x!=z)
{
int Left = (a*10000 + b*1000 + c*100 + d*10 + e) + (d*100 + f*10 + g) * 2;
int Right = (a+1)*10000 + y*1000 + z*100 + d*10 + e;
if(Left == Right)
{
cout << " " << a << b << c << d << e << endl;
cout << " " << d << f << g << endl;
cout << "+ " << d << f << g << endl;
cout << "---------" << endl;
cout << " " << a+1 << y << z << d << e << endl;
}
}
}
return 0;
}
[em1][em8][em8]

412 楼

再交个作业吧。

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

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

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

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

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

   (5)如果E参加,那么A和D也都参加。
*/
//分析:A、B、C、D、E可以看作5个变量,当X取真值时代表X参加,用1表示;取假值则不参加,用0表示。
//    由于存在5个变量,每个变量存在2种情况,因此共有2*2*2*2*2种可能,只要遍历这32种可能,
//    逐个判断每种可能是否可以使5个条件同时成立即可。

#include <iostream>
using namespace std;

int main( )
{
    int a, b, c, d, e;
    for(a=0; a<2; a++)
        for(b=0; b<2; b++)
            for(c=0; c<2; c++)
                for(d=0; d<2; d++)
                    for(e=0; e<2; e++)
                    {
                        if(a==1 && b==0) continue;
                        if(b==1 && c==1) continue;
                        if((c==1 && d==0) || (c==0 && d==1)) continue;
                        if(d==0 && e==0) continue;
                        if(e==1 && (a==0 || d==0)) continue;

                        if(a==1) cout << "a参加\t";
                        if(b==1) cout << "b参加\t";
                        if(c==1) cout << "c参加\t";
                        if(d==1) cout << "d参加\t";
                        if(e==1) cout << "e参加\t";
                        cout << endl;
                    }
    
    return 0;
}

413 楼

www.niusoft.net 有大量的C++技术文章

414 楼

说心里话,把这些题做完了,语法关就肯定过了。

415 楼


我还是高中生~~~~还不会编程~~~~
但我喜欢~~~~
看了几道题就得出第2道    是C D    或是A B

416 楼

我也来给入门的出题(一个关于IF语句判断时间的)

让用户输入两个参数:小时“h”、分钟“m”,用一组嵌套的IF语句写出满足以下条件的程序:
当时间为8:30至12:59,显示“open”;
当时间为14:00至18:59,显示“open”;
其他时间显示“close”。

417 楼


第二题:
#include <iostream>

using namespace std;

void main()
{
    int A,B,C,D,E;
    int count=0;
    for(A=0;A!=2;A++)
        for(B=0;B!=2;B++)
            for(C=0;C!=2;C++)
                for(D =0;D!=2;D++)
                    for(E =0;E!=2;E++)
                    {
                        count=0;
                        count+=((A==0)||(A==1&&B==1));
                        count+=((B+C)==1);
                        count+=(((C+D)==2)||((C+D)==0));
                        count+=((D+E)>=1);
                        count+=((E==0)||(E==1&&A==1&&D==1));
                        
                        if(count==5)
                            goto yes;
                    }            
            
yes:
        (A==1)?cout<<"派A去\n":cout<<"不派A去\n";
        (B==1)?cout<<"派B去\n":cout<<"不派B去\n";
        (C==1)?cout<<"派C去\n":cout<<"不派C去\n";
        (D==1)?cout<<"派D去\n":cout<<"不派D去\n";
        (E==1)?cout<<"派E去\n":cout<<"不派E去\n";
}

418 楼

55555,新手入门就已经这么难的啊???不知道有没信心学好C哦!!

419 楼

好  这个有意思~~~

420 楼

呵呵  有意思  我要全部去做一遍。做到不懂的时候请教你了!呵呵~~

我来回复

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