1. 编程求回文数
填好了,自己看吧。
#include "string.h"
char *huiwei(char *str)
{ char *p1,*p2;
int i,t=0;
p1=str; p2=str+strlen(str)-1;
for(i=0;i<strlen(str)/2;i++)
if(*p1++!=*p2--)
{ t=1;break;}
if(t==0) return("yes!");
else return("no!");
}
main( )
{ char str[50];
printf("Input:"); scanf("%s",str);
printf("%s\n",huiwei(str));
}
2. C语言怎么判断一个数是否是回文数
所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。
以下是判断一个数是否为回文数的代码:
3. 1-1000共有多少个会回文数求算法奥数
简单的暴力算法,从1遍历到999,判断是否是回文,如果是则计数+1:
intcalc(intlow,inthigh)
{
inti,j,k,count=0;
charnum[16];
for(i=low;i<high;i++)
{
sprintf(num,"%d",i);
j=k=0;
while(num[++k]);--k;
while(j<k&&num[j]==num[k])
{
j++;k--;
}
if(j>=k)count++;
}
returncount;
}
或者用比较诡异的算法:对小于10的数字,肯定都是回文了, 有9个,然后这9个可以扩展两位的回文,比如1变为11, 2变为22; 然后两位数共有从10到99个共90个数字,每个两位数也可以扩展为回文,即将原来的数字乘10加上原来的十位上的数字即可,比如10变为101, 21变为212,这样有90个回文数了, 所以一共有9+9+90=108个,这个算法就用代码写的话就没啥意思了哈。
4. c语言回文数判定
除法和求余算法判断回文数:把一个数的各个位上的数字独立出来
打比方:123
个位上的数字3=123%10;
十位上的数字2=(123/10)%10···
不用数组的话,可以用链栈存储结构,首先把输入的数字通过除法和求余运算把一个数字的各个位拆分开来,再把拆开的一组数字的一半存入链栈,再出栈与剩余的一半数字作比较。
5. 什么是回文数
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
(5)回文数算法扩展阅读
回文数算法:随意找一个十进制的数,把它倒过来成另一个数,再把这两个数相加,得一个和数,这是第一步;然后把这个和数倒过来,与原来的和数相加,又得到一个新的和数,这是第二步。
照此方法,一步步接续往下算,直到出现一个“回文数”为n。例如:28+82=110,110+011=121,两步就得出了一个“回文数”。如果接着算下去,还会得到更多的“回文数”。这个过程称为“196算法”。
6. c++编程 求回文数
#include<iostream>
using namespace std;
bool IsHwu2(int n)
{
int a, b = 0;
int k = n;
bool ishw=false;
while(k)
{
a = k % 10;
b = b * 10 + a;
k /= 10;
}
if(n == b)
ishw=true;
return ishw;
}
void main()
{
const NO1=100;
const NO2=1000;
for (int a=NO1;a<NO2;a++)
{
if(IsHwu2(a))
cout<<a<<" ";
}
cout<<endl;
}
运行看看,应该是你想要的输出 ,你的错误上面大家都说了 是m没有赋值
7. 设计一个算法,输出所有3位数的回文数(如101、323、919等),并画出算法框图…求高手!
1) 令b=0
2) 令b增加1
3) 如果b=10,则结束算法
4) 令a=0
5) 输出(b*100+a*10+b)
6) 令a增加1
7) 如果a=10,则回到2),否则回到5)
自己把它转化成框图吧.
8. 什么是回文数算法
回文数算法 c语言和java语言实现回文数算法的区别
问题:
将所有回文数从小到大排列,求第N个回文数。
一个正数如果顺着和反过来都是一样的(如13431,反过来也是...
9. C语言回文算法
我前几天刚好做过类似题,这里才3位数比较简单,已经调试并运行过了,绝对准确!
main()
{
int
n,i,a[5];
for(i=10;i<=200;i++)/*回文数至少为两位数,即大于9*/
{
if(i/100>=1)/*三位数得情况*/
{
a[0]=i/100;/*百位数*/
a[1]=i%100/10;
a[2]=i%10;
if(a[0]==a[2])printf("\n%d",i);
}
else
/*两位数得情况*/
{
a[0]=i/10;
a[1]=i%10;
if(a[0]==a[1])printf("\n%d",i);
}
}
}
10. 设计算法判断一个数是不是回文数
var
s:string;
i:integer;
begin
readln(s);{记录该数}
for i:=1 to length(s) div 2 do (回文数两两对应,所以只要搜索一半)
if s[i]=s[length(s)+1-i] then continue {如果是,就让它继续搜下去}
else begin dec(i); break; end;{如果不是,就将指针i指向前面,并且跳出循环}
if i=length(s) then writeln("yes")
else writeln("no");{表明搜索完毕没有受到阻力,所以是回文数}
end.