主题:入门必做的题
GCC
[专家分:14380] 发布于 2006-04-14 11:53:00
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个回复)
531 楼
laogen12345 [专家分:0] 发布于 2007-08-23 22:24:00
我是新手啊,觉得入门很难,我喜欢作题目,这样自己的思维才能动起来
532 楼
zhuxuquan [专家分:0] 发布于 2007-08-26 08:22:00
谢谢楼主了!!!
希望继续发好贴!!!
533 楼
weathers [专家分:30] 发布于 2007-08-27 07:06:00
这么强,服了.
534 楼
lgsun [专家分:60] 发布于 2007-08-29 12:47:00
"toj"是什么啊?小弟很菜,希望赐教。
535 楼
dart [专家分:0] 发布于 2007-09-02 17:27:00
[quote]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;
}[/quote]
考率下时间和空间效率,我写的代码基本上和你的差不多...但是强大的内存还是不支持,半天还没有算出结果来,郁闷半天
536 楼
dart [专家分:0] 发布于 2007-09-02 19:12:00
no.3
#include<iostream.h>
const int n=15;
void main()
{
int a[n][n];
int m=(int)(n/2);
int i,j,k;
if(n>4)
{
a[m][m]=m-1;
for(i=1;i<=m;i++) //往外推的圈数
for(k=0;k<n;k++)
{
{
if(i==m)
{
a[m-i][k]=int('T');
a[m+i][k]=int('T');
a[k][m-i]=int('T');
a[k][m+i]=int('T');
}
if(i==m-1)
{
a[m-i][k]=int('j');
a[m+i][k]=int('j');
a[k][m-i]=int('j');
a[k][m+i]=int('j');
}
if(i<m-1)
{
a[m-i][k]=m-i;
a[m+i][k]=m-i;
a[k][m-i]=m-i;
a[k][m+i]=m-i;
}
}
}
}
if(n==3)
{ for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[j][i]=int('T');
a[1][1]=int('j');
}
if(n==4)
{
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[j][i]=int('T');
a[1][1]=a[1][2]=a[2][1]=a[2][2]=int('j');
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
//if(((i==0)&&(i==n-1))&&((j==0)||(j==n-1)))
if((i==0)||(i==n-1)||(j==0)||(j==n-1))
{
cout<<(char)a[i][j];
}
else if((i==1)||(i==n-2)||(j==1)||(j==n-2))
{
cout<<(char)a[i][j];
}
else cout<<a[i][j];
if((j%(n-1))==0&&j>0)
cout<<endl;
}
cout<<endl;
}
538 楼
int-ding [专家分:60] 发布于 2007-09-04 21:35:00
#include<stdio.h>/*when n=10*/
main()
{
char nn[10][10];
int i,j;
for(i=0;i<=9;i++)
{
for(j=0;j<=9;j++)
{
nn[i][j]='T';
if(i>0&&i<9&&j>0&&j<9)nn[i][j]='J';
if(i>1&&i<8&&j>1&&j<8)nn[i][j]='1';
if(i>2&&i<7&&j>2&&j<7)nn[i][j]='2';
if(i>3&&i<6&&j>3&&j<6)nn[i][j]='3';
printf("%c",nn[i][j]);
}
printf("\n");
}
getch();
}
第3题的答案
539 楼
liwen329 [专家分:130] 发布于 2007-09-05 22:44:00
题目非常不错//...
540 楼
langxve [专家分:80] 发布于 2007-09-14 00:32:00
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int i,n,j,t;
printf("please input a number:\n");
scanf("%d",&n);
long m=clock();//开始计时
for(i=0;i<n;i++)
printf("%-2c",'T');
printf("\n");
for(i=0;i<n;i++)
{
if(i==1||i==n-2)
printf("%-2c",'J');
else printf("%-2c",'T');
}
printf("\n");
for(i=1;i<=(n-3)/2;i++)
{
printf("%-2c%-2c",'T','J');
for(j=1,t=i;j<=n-4;j++)
{
if(j>=i&&n-4-i>=j)
printf("%-2d",i);
else
if(j>n-4-i)
{
for(t;t>0;t--)
printf("%-2d",t);
}
else
printf("%-2d",j);
}
printf("%-2c%-2c",'J','T');
printf("\n");
}
for(i=(n-3)/2-1;i>0;i--)
{
printf("%-2c%-2c",'T','J');
for(j=1,t=i;j<=n-4;j++)
{
if(j>=i&&n-4-i>=j)
printf("%-2d",i);
else
if(j>n-4-i)
{
for(t;t>0;t--)
printf("%-2d",t);
}
else
printf("%-2d",j);
}
printf("%-2c%-2c",'J','T');
printf("\n");
}
for(i=0;i<n;i++)
{
if(i==1||i==n-2)
printf("%-2c",'J');
else printf("%-2c",'T');
}
printf("\n");
for(i=0;i<n;i++)
printf("%-2c",'T');
m=clock()-m;//结束计时
printf("\nTime = %d ms\n",m);//输出用时
printf("\n");
system("pause");
}//编译器Dev-C++4.9.9.2
第三题答案
我来回复