回 帖 发 新 帖 刷新版面

主题:入门必做的题

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

301 楼

second:
#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&&B)||(!A))     //A参加时,B也参加;
        if((C&&D)||(!C&&!D))   //C和D或者都参加,或者都不参加;
        if(!(!D&&!E))   //D和E中至少有一个人参加;
        if((E&&A&&D)||(!E))  //如果E参加,那么A和D也都参加。
        if((!B&&C)||(!C&&B))   //B和C只有一个人参加;
        {
            if(A)
                cout<<"A参加"<<endl;
            if(B)
                cout<<"B参加"<<endl;
            if(C)
                cout<<"C参加"<<endl;
            if(D)
                cout<<"D参加"<<endl;
            if(E)            
                cout<<"E参加"<<endl;
        }
}
                    
                    

302 楼

我想问哈。那里有C的下载。我买个盗版的。按不上。网上那有免费下载啊
哈哈~~支持

303 楼

third:
#include <iostream>
#include <string>
using namespace std;
int main(){
    int n;
    while(cin>>n)
    {
        cout<<string(n,'T')<<endl
            <<'T'<<string(n-2,'J')<<'T'<<endl;
        int sign,N=n-4;
        for(int i=0;i<N;i++)
        {
            cout<<"TJ";
            if(i<=N/2)
                sign=i;
            else
                sign=N-i-1;
            for(int j=0;j<sign;j++)
                cout<<j+1;
            cout<<string(N-2*sign,sign+49);
            for(int g=sign;g>0;g--)
                cout<<g;
            cout<<"JT";
            cout<<endl;
        }
        cout<<'T'<<string(n-2,'J')<<'T'<<endl
            <<string(n,'T')<<endl;
    }
}

304 楼

你好,有没有答案呀?

305 楼

楼主贡献不小,表扬,谢谢

306 楼

NO.5
进制转换:


#include"malloc.h"
#include"stdio.h"
#define MAX 225
typedef struct
{int q[MAX];
int top;
}list;

 void creat(list *p)
{if(!p)
    printf("错误!\n");
p->top=-1;
}

int into(list *j, int x)
{if(j->top<MAX-1)
   {j->top=j->top+1;
    j->q[j->top]=x;}
else
    printf("溢出。\n");
}

int put(list *r)
{int x;
if(r->top!=-1)
{x=r->q[r->top];
r->top=r->top-1;
return(x);
}
else
    return(-1);
}
int yunshu(int m)
{int s,h,n,k,y,num;
if(m!=0)
{list *p;
p=(list *)malloc(sizeof(list));
creat(p);
printf("请输入要转换的数:\n");
scanf("%d",&s);
do
{n=s;
s=s/m;
k=n%m;
into(p,k);
}while(s);
printf("10->%d进制数为:\n",m);
printf("\n");
do
{
y=put(p);
if(y>9)
printf("%c",y+87);
else if(y==-1)
break;
else
printf("%c",y+48);
}
while(y!=-1);
}
else
{printf("请输入从10进制转换为B进制:\n");
scanf("%d",&num);
yunshu(num);
}
}




main()
{ int i;
int fage;
fage=1;
do{printf("\n");
printf("\t******主菜单******\n");
printf("\t==================\n");
printf("\t1-----------10->16\n");
printf("\t2-----------10->8\n");
printf("\t3-----------10->2\n");
printf("\t4-----------其他转换.\n");
printf("\t0-----------finish.\n");
printf("\t===================\n");
printf("请选择:\n");
scanf("%d",&i);
switch(i)
{case 0:fage=0;break;
case 1:yunshu(16);break;
case 2:yunshu(8);break;
case 3:yunshu(2);break;
case 4:yunshu(0);break;
default:printf("选择错误。请重新选择。\n");

    }

}while(fage);
}

307 楼

好复杂啊

308 楼

我是个初学者,看到这些难题有点头晕

309 楼

The first one:
answer:
A B C D E F G X Y Z
0 3 9 7 6 5 8 4 1 2
1 4 8 9 2 3 6 5 0 7
5 7 9 4 2 6 1 8 0 3
6 3 9 7 0 8 5 4 1 2

Code:

#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<stdio.h>
#include <stdio.h>
int main()
{
ofstream outfile("result.dat");
int a, b, c, d, e, f, g, x, y, z;

        for(int a = 0; a<10; a++)
        {
        for(int b = 0; b<10; b++)
        {
        for(int c = 0; c<10; c++)
        {
        for(int d = 0; d<10; d++)
        {
        for(int e = 0; e<10; e++)
        {
        for(int f = 0; f<10; f++)
        {
        for(int g = 0; g<10; g++)
        {
        for(int x = 0; x<10; x++)
        {
        for(int y = 0; y<10; y++)
        {
        for(int z = 0; z<10; z++)
        {

310 楼

if(
                ((b*10000 + c*1000 + d*100 + e*10 + d*100 + f*10 + g + d*100 + f*10 + g) == (x*10000 + y * 1000 + z*100 + d*10+e)) &&
                (a!=b)&&
                (a!=c)&&
                (a!=d)&&
                (a!=e)&&
                (a!=f)&&
                (a!=g)&&
                (a!=x)&&
                (a!=y)&&
                (a!=z)&&

                (b!=c)&&
                (b!=d)&&
                (b!=e)&&
                (b!=f)&&
                (b!=g)&&
                (b!=x)&&
                (b!=y)&&
                (b!=z)&&

                (c!=d)&&
                (c!=e)&&
                (c!=f)&&
                (c!=g)&&
                (c!=x)&&
                (c!=y)&&
                (c!=z)&&

                (d!=e)&&
                (d!=f)&&
                (d!=g)&&
                (d!=x)&&
                (d!=y)&&
                (d!=z)&&

                (e!=f)&&
                (e!=g)&&
                (e!=x)&&
                (e!=y)&&
                (e!=z)&&

                (f!=g)&&
                (f!=x)&&
                (f!=y)&&
                (f!=z)&&

                (g!=x)&&
                (g!=y)&&
                (g!=z)&&

                (x!=y)&&
                (x!=z)&&

                (y!=z)
                )
        {
        cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e
        <<" "<<f<<" "<<g<<" "<<
        x<<" "<<y<<" "<<z<<endl;

        outfile<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e
        <<" "<<f<<" "<<g<<" "<<
        x<<" "<<y<<" "<<z<<endl;
        }
else
continue;
        }
        }
        }
        }
        }
        }
        }
        }
        }
        }
        outfile.close();
        cout<<"Press enter to end the programm!!!"<<endl;
        getchar();
        return 0;
}

我来回复

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