主题:入门必做的题
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个回复)
521 楼
shefen [专家分:0] 发布于 2007-08-05 10:23:00
int型它有限制数值大小为-32768~32767,大于就会出错,应该使用long int
522 楼
liulanghan110 [专家分:10] 发布于 2007-08-07 06:56:00
貌似对入门来说难了点啊!~
523 楼
zdwzzu2006 [专家分:260] 发布于 2007-08-07 16:19:00
哪位写出了第一题,帮忙帖一下,谢谢了。[em18]
524 楼
jiake_huang [专家分:0] 发布于 2007-08-18 17:47:00
第一题答案:
#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 楼
jiake_huang [专家分:0] 发布于 2007-08-18 17:47:00
奶奶的,一次发不下
526 楼
jiake_huang [专家分:0] 发布于 2007-08-18 17:48:00
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 楼
jiake_huang [专家分:0] 发布于 2007-08-18 17:48:00
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 楼
jiake_huang [专家分:0] 发布于 2007-08-18 17:49:00
我也是初学c++,我的qq 15965308,有兴趣的朋友加,共同交流.
529 楼
cx29151556 [专家分:0] 发布于 2007-08-20 09:06:00
好多题哟。。。谢谢LZ..........[em11]
530 楼
zptk720 [专家分:30] 发布于 2007-08-20 13:45:00
自己研究着做做 希望可以独立完成 我是初学者
我来回复