两个笔试题目

llf_hust 2005-10-17 06:28:30
1.怎样判断一个回文数的平方根是不是一个整数?
2。把一个M进制的数转换成N进制?
大家有没有好的算法。。。
...全文
385 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
csucdl 2005-10-17
  • 打赏
  • 举报
回复

//进制转换的辅助函数(helper)
//将一个字符转换成相应的十进制数字,以进行十进制运算
int Algorithms::ToInt(const char& ch)
{
if(ch >= '0' && ch <= '9')
{
return ch - '0';
}
else if(ch > '9' && ch < 'g')
{
return tolower(ch) - 'a' + 10;
}
else
{
return -1;
}
}

//上面函数的逆过程
char Algorithms::ToChar(const int& i)
{
if(i >= 0 && i <= 9)
{
return (char)(i + '0');
}
else
{
return (char)(i - 10 + 'a');
}
}


//实现进制转换,从N进制转换到M进制
//实现思想:转换成为熟悉的十进制数
//N进制的数XkXk-1...X2X1X0转换成十进制数的方法为:
//temp = X0 * N^0 + X1 * N^1 + ...
void Algorithms::Tran()
{
string param = "";//用于存放用户输入的数
string cM = "";
string cN = "";
int M = 0;//目的基数
int N = 0;//原基数
char ch = '\0';

string s = "";//用于存放结果
int temp = 0;//存放十进制数
int length = 0;
int j = 0;
int other = 0;
int i = 0;
do
{
cout<<"请输入一个整数和他的基数以及要转换的基数:"<<endl;

cin>>param>>cN>>cM;

length =param.size();
N = atoi(cN.c_str());
M = atoi(cM.c_str());


if(N < 2 || M < 2 || N > 16 || M > 16)
{
cout<<"基数错误!"<<endl;
goto exit;
}//基数错误

temp = 0;
for(i = 0; i < length; i++)
{
j = length - 1 - i;
other = Algorithms::ToInt(param[i]);//将字符转化成数

if(other >= N || other == -1)
{
cout<<"数字必须小于基数!"<<endl;
goto exit;
}

temp += other * pow(N, j);//将N进制数转换成十进制数的核心技术
}

s.erase(s.begin(), s.end());//结果容器清零

while(temp != 0)
{
s += (Algorithms::ToChar(temp % M));//将十进制数转换成M进制数的核心技术
temp = temp / M;

}

for(i = s.length() - 1; i >= 0; i--)
{
cout<<s[i];
}//用于输出
cout<<endl;
exit: cout<<"继续?(y/n)";
cin>>ch;
}while(tolower(ch) == 'y');//继续与否
}
EddyWheel 2005-10-17
  • 打赏
  • 举报
回复
先把M转成十进制的再转成N进制的?
fuyong214 2005-10-17
  • 打赏
  • 举报
回复
第一个题目:
/*参数a是一个回文数,如果开平方是整数返回1,否则返回0 */
 int judge(int a)
{
int temp;
temp=sqrt(a);
if (temp*temp=a)
return 1;
return 0;
}
Cnwanglin 2005-10-17
  • 打赏
  • 举报
回复
(1)http://www.oioj.net/blog/user2/20387/archives/2005/117654.shtml
(2)http://www.royaloo.com/articles/articles_2003/NumericSystem.htm
llf_hust 2005-10-17
  • 打赏
  • 举报
回复
up

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧