主题:入门必做的题
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个回复)
461 楼
qicai2007 [专家分:60] 发布于 2007-04-30 12:52:00
#include <cstdlib>
#include <iostream>
//编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子
//中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度
//相同。例如:
// 输入:
//THE PRICE OFBREAD IS ¥1 25 PER POUND
//输出:
//ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU
//并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。
using namespace std;
int main(int argc, char *argv[])
{
int n;//输入字符串的个数n<60
cout<<"输入字符串的个数:";
cin>>n;
char temp=' ';
int fuhao[n];
char zifu[n];
for(int i=0;i<n;i++)
{
int fuhao=0;//初始化字符数组
}
cout<<"请输入字符串:";
for(int i=0;i<n;i++)
{
cin>>zifu[i];
if((int)zifu[i]>40&&(int)zifu[i]<91)
{
fuhao[i]=1;//设置一个符号标志
}
}
for(int i=n;i>0;i--)
{
for(int j=0;j<i-1;j++)
{
//if((int(zifu[j])<91&&int(zifu[j])>40)&&(int(zifu[j+1])<91&&int(zifu[j+1])>40))
if(fuhao[j])
{
if(fuhao[j+1])
{
if(zifu[j]>zifu[j+1])
{
temp=zifu[j];
zifu[j]=zifu[j+1];
zifu[j+1]=temp;
}
}
}
}
}
for(int i=0;i<n;i++)
{
cout<<zifu[i];
}
system("PAUSE");
return EXIT_SUCCESS;
}
本题还应该有符号的输入,但我不知道该怎样将它们与字母区别开,并输出!请多指教!!谢谢!![em18][em18]
462 楼
oney139 [专家分:0] 发布于 2007-05-06 16:19:00
我是新手,请问有详细答案吗?
463 楼
seacooky [专家分:0] 发布于 2007-05-08 02:03:00
恩
正好没题目呢
464 楼
honesy [专家分:90] 发布于 2007-05-09 22:03:00
我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>
using namespace std;
//#define N 5;
void main()
{
int N;
cout<<"Inout the value of matrix's N:"<<endl;
cin>>N;
int a[100];//={1,2,3,4,5};
int b[100];
for(int i=0;i<N;i++)
{
a[i]=i+1;
}
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if( (a[j]+i)<(N+1) )
b[j]=( (a[j]+i)%(N+1) );
else
b[j]=( (a[j]+i+1)%(N+1) );
cout<<b[j];
if( (j%(N-1))==0&&j!=0 ) cout<<endl;
}
}
}
465 楼
honesy [专家分:90] 发布于 2007-05-09 22:03:00
我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>
using namespace std;
//#define N 5;
void main()
{
int N;
cout<<"Inout the value of matrix's N:"<<endl;
cin>>N;
int a[100];//={1,2,3,4,5};
int b[100];
for(int i=0;i<N;i++)
{
a[i]=i+1;
}
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if( (a[j]+i)<(N+1) )
b[j]=( (a[j]+i)%(N+1) );
else
b[j]=( (a[j]+i+1)%(N+1) );
cout<<b[j];
if( (j%(N-1))==0&&j!=0 ) cout<<endl;
}
}
}
466 楼
honesy [专家分:90] 发布于 2007-05-09 22:03:00
我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>
using namespace std;
//#define N 5;
void main()
{
int N;
cout<<"Inout the value of matrix's N:"<<endl;
cin>>N;
int a[100];//={1,2,3,4,5};
int b[100];
for(int i=0;i<N;i++)
{
a[i]=i+1;
}
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if( (a[j]+i)<(N+1) )
b[j]=( (a[j]+i)%(N+1) );
else
b[j]=( (a[j]+i+1)%(N+1) );
cout<<b[j];
if( (j%(N-1))==0&&j!=0 ) cout<<endl;
}
}
}
467 楼
honesy [专家分:90] 发布于 2007-05-09 22:03:00
我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>
using namespace std;
//#define N 5;
void main()
{
int N;
cout<<"Inout the value of matrix's N:"<<endl;
cin>>N;
int a[100];//={1,2,3,4,5};
int b[100];
for(int i=0;i<N;i++)
{
a[i]=i+1;
}
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if( (a[j]+i)<(N+1) )
b[j]=( (a[j]+i)%(N+1) );
else
b[j]=( (a[j]+i+1)%(N+1) );
cout<<b[j];
if( (j%(N-1))==0&&j!=0 ) cout<<endl;
}
}
}
468 楼
honesy [专家分:90] 发布于 2007-05-09 22:13:00
我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>
using namespace std;
//#define N 5;
void main()
{
int N;
cout<<"Inout the value of matrix's N:"<<endl;
cin>>N;
int a[100];//={1,2,3,4,5};
int b[100];
for(i
469 楼
vqimwr [专家分:1320] 发布于 2007-05-10 14:38:00
//1. 给定等式
// A B C D E
// D F G
// + D F G
// ───────
// X Y Z D E
//
// 其中每个字母代表一个数字,且不同数字对应不同字母。
//编程求出这些数字并且打出这个数字的算术计算竖式。
//by vqimwr
//E+2*G=E或E+2*G=E+10*?,显然有G=0或5,同样F为0或5。两条件合起来可推出G为0,F为5。
//故只需要考虑等式
// A B C
// + D
// + D
// + 1
// ──────
// X Y Z
//显然又可以看出X=A+1≤9,
//B+2≥10或B+1≥10,即B≥8或B≥9),故B=8或B=9,若为B=8,则有Y为0,不成立。故B=9,且Y=9+2-10=1
//剩下2,3,4及6,7,8可选,因为c+d+d+1≥22(小于30,因尾数不为1,21也不行),则d=7或d=8
//若d=7,则c+15≥22得c≥7,即c=8,得z=5,矛盾。故d=8
//a与x为连续数,只能为2,3或3,4,很显然有z≠3,当d=8,由17+c≥22有c≥5,有6,7可选,
//选6,则z=3,矛盾,所以,则z=4,剩下剩下2,3, 6可选,显然a=2,x=3,则e=6
//即:a=2,b=8, c=7, d=8, e=6,f=5,g=0,x=3,y=1,z=4,等式如下:
// 29786
// 850
// + 850
// ───────
// 31486
//这是一个可以直接推断出来的题目,所以,估计出题者的意图是不允许作任何推断,
//甚至包括x≠0等这种推断也不许,所有的过程都交给程序遍历
//程序略
470 楼
pgl-eagle [专家分:0] 发布于 2007-05-10 16:48:00
好贴,顶!!![em2]
我来回复