寻找并输出11~999之间的数m,它满足m、m的平方、m的立方均为回文数。怎么用c语言编程

所谓回文数是指其各位数字左右对称的整数,例如121、676、94249等。满足上述条件的数如m=11,其平方为121,其立方为1331,皆为回文数。要求编制函数intsv... 所谓回文数是指其各位数字左右对称的整数,例如121、676、94249等。满足上述条件的数如 m=11,其平方为121,其立方为1331,皆为回文数。要求编制函数 int svalue(long m)实现此功能,如果是回文数,则函数则函数返回1,反之则返回0。在主函数中将三重回文数输出。 展开
 我来答
阳光上的桥
推荐于2018-04-13 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65810
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
结果是下面三个数:
11 101 111

程序如下:

int svalue(long m){
int i,j,n[10],ok=1;
for (i=0;i<10;i++)n[i]=0;
i=0;
while(m>0) {n[i]=m%10; m/=10; i++;}
i--;
for(j=0;j<i/2;j++) if (n[j]!=n[i-j]) ok=0;
return ok;
}

main(){
long i;
for (i=11;i<=999;i++)
if(svalue(i) && svalue(i*i) && svalue(i*i*i))
printf("%d\t",i);
}

以上程序在TURBO-C 2.0上调试通过。
sunkunjava
2008-12-31 · TA获得超过269个赞
知道小有建树答主
回答量:172
采纳率:83%
帮助的人:53.1万
展开全部
我不会C语言,不过我可以给你一个java版的参考,希望对你能有用
public static void main(String [] ages){
for(int i=11;i<=999;i++){
if(check(i) && check(i*i) && check(i*i*i)){
System.out.println(i+"是回文数");
}}
}
public static boolean check(int i){
boolean b = true; //默认为是回文数
String is = i+"";
int len = is.length();
for(int j=0;j<len;j++){
if(is.charAt(j) != is.charAt(len-j-1)){
b = false;
break; //只要有一项不符合就标记并退出
}
}
return b;
}
结果是11,101,111

参考资料: 咨询QQ:471458030

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1ea63a0
2018-04-13
知道答主
回答量:5
采纳率:0%
帮助的人:4126
展开全部
……看错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-05-17
知道答主
回答量:1
采纳率:0%
帮助的人:867
展开全部
#include<iostream>
using namespace std;

bool symm(unsigned n)
{
unsigned i=n;
unsigned m=0;
while(i>0)
{
m=m*10+i%10;
i=i/10;
}
return m==n;
}
int main()
{
for(unsigned m=11;m<1000;m++)
if(symm(m)&&symm(m*m)&&symm(m*m*m))
{
cout<<" m="<<m;
cout<<" m*m="<<m*m;
cout<<" m*m*m"<<m*m*m<<endl;
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式