主题:入门必做的题
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个回复)
211 楼
wuchengwei [专家分:1650] 发布于 2006-05-25 12:46:00
暂停若干日,学习数学
212 楼
leolhc [专家分:430] 发布于 2006-05-26 14:24:00
第一题 by leolhc
tc测试通过
void main()
{
int A,B,C,D,E,F,G,L1,L2,L3,X,Y,Z;
long int i,j,k;
for (i=10000;i<=99999;i++)
{
A=i/10000;B=(i-A*10000)/1000;C=(i-A*10000-B*1000)/100;
D=(i-A*10000-B*1000-C*100)/10;
E=i-A*10000-B*1000-C*100-D*10;
if ((A==B)||(A==C)||(A==D)||(A==E)||
(B==C)||(B==D)||(B==E)||
(C==D)||(C==E)||
(D==E))
continue;
for (j=100;j<=999;j++)
{
L1=j/100;F=(j-L1*100)/10;G=j-L1*100-F*10;
if ((A==F)||(A==G)||(B==F)||(B==G)||
(C==F)||(C==G)||(D==F)||(D==G)||
(E==F)||(E==G)||(F==G)||(L1!=D))
continue;
k=i+2*j;
X=k/10000;Y=(k-X*10000)/1000;
Z=(k-X*10000-Y*1000)/100;
L2=(k-X*10000-Y*1000-Z*100)/10;
L3=k-X*10000-Y*1000-Z*100-L2*10;
if ((A==X)||(A==Y)||(A==Z)||
(B==X)||(B==Y)||(B==Z)||
(C==X)||(C==Y)||(C==Z)||
(D==X)||(D==Y)||(D==Z)||
(E==X)||(E==Y)||(E==Z)||
(F==X)||(F==Y)||(F==Z)||
(G==X)||(G==Y)||(G==Z)||
(X==Y)||(X==Z)||(Y==Z)||
(L2!=D)||(L3!=E))
continue;
printf("%3d%d%d%d%d\n",A,B,C,D,E);
printf("%5d%d%d\n",D,F,G);
printf("+%4d%d%d\n",D,F,G);
printf("%3d%d%d%d%d\n",X,Y,Z,D,E);
printf("\n");
}
}
getch();
}
第二题 by leolhc
tc测试通过
main()
{
int a,b,c,d,e;
for (a=0;a<=1;a++)
for (b=0;b<=1;b++)
for (c=0;c<=1;c++)
for (d=0;d<=1;d++)
for (e=0;e<=1;e++)
if ((!a||b)&&((b&&!c)||(!b&&c))&&((c&&d)||(!c&&!d))&&(d||e)&&(!e||(a&&d)))
printf("%d%d%d%d%d\n",a,b,c,d,e);
getch();
}
注:if 中的判断条件用离散数学逻辑推理知识得到。
213 楼
塞北小狼 [专家分:20] 发布于 2006-05-26 15:08:00
^O^
214 楼
从0开始 [专家分:0] 发布于 2006-05-27 14:35:00
经典,都可以拿来当考试用的了
215 楼
peak14 [专家分:0] 发布于 2006-05-27 16:02:00
第61题答案有没有啊?
[em18]
216 楼
machh [专家分:30] 发布于 2006-05-27 17:28:00
怎么不能回复?
217 楼
啊远 [专家分:2610] 发布于 2006-05-28 20:11:00
全是一本 1948 年出版的 BASIC 语言教程 上的题! 呵呵!
218 楼
dushen [专家分:30] 发布于 2006-05-29 11:24:00
楼主给这么多题目
有没有答案可供参考啊
有好些题目还是很难的
219 楼
tieqiaosan [专家分:90] 发布于 2006-05-29 12:14:00
看起来挺难的,我也得先修炼几个月再说啊
220 楼
amanzhoujie [专家分:280] 发布于 2006-05-29 20:14:00
哦,太好了,有这么多东西可以练手不错啊
我来回复