导航:首页 > 废水知识 > 用指针判断7位回文数

用指针判断7位回文数

发布时间:2020-12-23 12:54:16

Ⅰ 判断一个链表是不是回文数,要求O(n)时间

1. 使用2个指针,快慢指针各一个,每次快指针移动一个,慢指针移动2个。 2. 当快指针不为NULL时候,将慢指针push到栈中。 3. 当快指针等于NULL时候,说明链表前半部分已经被压入栈中。 4. 每次栈Top元素与当前慢指针元素比较,如果不相等则返回false。如果相等,则栈Pop,慢指针++。 5. 链表奇数或者偶数节点需要判断。 #include <iostream #include <stack struct node{int data;node* next; node(int eData, node* eNext){data = eData; next = eNext;}}; bool isPanli(node* head){std::stack<node* stk; node* slow = head; node* fast = head; bool flag = false; while (fast){stk.push(slow); slow = slow-next; fast = fast-next;if (fast){fast = fast-next;}elseflag = true;}if (flag)stk.pop(); while (!stk.empty()){if (stk.top()-data == slow-data){stk.pop();slow = slow-next;}elsereturn false;} return true;};int main(){node* n5 = new node(1, NULL); node* n4 = new node(2, n5); node* n3 = new node(3, n4); //node* n2 = new node(3, n3);node* n1 = new node(2, n3);

Ⅱ C语言指针,判断是否是回文

参数应为char *p.

另外, strlen参数应为p而不是*p .

最后 虽然你这个修改后可以实现判断, 但严格来说内不算是利用指针实容现.

修改如下

#include<stdio.h>
intmain(void)
//判断字符串是否是回文
{
inti=0,flag;
charstr[80];
intyes(char*p);//

printf("请输入字符串:");
while((str[i]=getchar())!=' ')i++;
str[i]='';

flag=yes(str);
if(flag)printf("%s是回文 ",str);
}
intyes(char*p)
{
char*e=p;
while(*e)e++;
--e;
while(p<e&&*p==*e)
{
p++;
e--;
}
if(p>=e)return1;
return0;
}
/*

asadasa

*/

Ⅲ 编程题 1) 请使用指针编程实现:判断一个数是否为回文数。(要求:判断功能单独使用函数实现) 说明:回文数

#include<stdio.h>
int hw(int*p)
{
int t=0,n=*p;
while(*p)
{
t=t*10+*p%10;
*p/=10;
}
if(t==n)
return 1;
return 0;
}
int main()
{
int num,m;
printf("输入num:");
scanf("%d",&num);
m=num;
if(hw(&m))
printf("是回文!版!\n");
else
printf("不是权回文!!\n");
}

Ⅳ 大一刚学C语言,请问大虾,判断整数回文如何编程。不能用数组和指针。最好有详细过程。

^bool check(int x){
int i,j,maxx;//这里默认int变量上限为2^31-1,如有需要可以把int改为long
for (maxx=1;maxx<x;maxx*=10);
maxx/=10;//为后面截取最高位做准备
while (x>=10){//进行循环检测这个整数的最高位和最低位,直至只剩中间一位或不剩
i=x/maxx;//截取整数最高位
j=x%10;//截取整数最低位
if(i!=j) break;
x%=maxx;x/=10;//整数删去最高位最低位
maxx/=100;//为后面截取最高位做准备
}
return (x<10);//若x<10,则该数满足要求是回文数
}

对LZ的程序做一个评价吧:
首先,只有一位的数字是回文数。
而且,按LZ的程序看,像12341这样的数字也可以被判断成回文数,只有两边数字完全不一样的数才不是回文数。而且k没有赋初值。
建议删去if(n==1)这个条件句
另外,把逐一比较的for语句修改如下:
for(i=0,j=n-1,k=1;i<j;i++,j--)//k赋初值1,两边不需要重复比较两次,所以修改成i<j
{
if(A[i]!=A[j])//只要有一对数位不符合条件它就不是回文数
k=0;
}
我的程序第二行为什么会看不懂?……只是对局部变量的声明而已,是范围没弄明白?范围可以无视。。
另外,LZ说的不能用数组和指针,我被迫这么写。。

希望能给你帮助

你忘了一件最最重要的事:A数组没有计算!(但是是你说不能用数组指针啊)

while(s>0)
{
s=s/10.0;
n++;/*得到n的值为A的位数*/
}
改为
while (s>0)
{a[n]=s%10;s/=10;/*其实得到的序列是这个数字倒过来的序列,但是回文数倒着判断还是回文数,所以无所谓*/
n++;/*得到n的值为A的位数*/
}
另外说明一下,我为了计算机竞赛从初一就开始学C了,现在上高一,有什么问题可以找我,我尽量帮忙

Ⅳ C++用指针判断回文数

#include<iostream>
usingnamespacestd;
intx,y;
judge(int*data,intlen)
{
inti,j,f=0;
for(i=0,j=len-1;i<=j;i++,j--)
{
if(*(data+i)!版=*(data+j))
{
f=1;cout<<"不是回文!权!! ";break;
}
}
if(f==0)
cout<<"是回文! ";
}
separate(int*data,intn)
{
intj,k,t;
y=0;
while(n!=0)
{
*(data+y)=n;n=n/10;y++;
}
*(data+y)='';
for(j=0,k=y-1;j<=k;j++,k--)
{
t=*(data+j);*(data+j)=*(data+k);*(data+k)=t;
}
}
voidmain()
{
inta[99];
cin>>x;///输入一个整数
separate(a,x);
judge(a,y);
}

Ⅵ c语言编程 利用字符串指针编写 一程序求所有不超过200的N值,N的平方是具有对称性的回文数

#include<stdio.h>

int palindrome(unsigned int x)
{
unsigned int y;
unsigned int s=0;
y=x;
while(y>0)
{
s=s*10+y%10;
y=y/10;
}
if(s==x)
return 1;
else
return 0;
}

void main()
{
printf("符合条件的N为:回 N平方答为:\n");
for(int n=1;n<=200;n++)
{
if(palindrome(n*n))
{
printf(" %-5d %-5d\n",n,n*n);
}
}
}

运行结果如下:
符合条件的N为: N平方为:
1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
Press any key to continue

Ⅶ 编写一个函数,判断其int型参数值是否为回文数(用数组实现)

把正数转换成字符串处理,十分方便: int palindrome(int num) { int ret=1; char str[10],s1[5],s2[5]; int i,len; itoa(num,str,10); len=strlen(str); /*长度为偶数返回回0*/ if(len== 0) { ret=0; } /*将它分答割为2个字符串*/ for(i=0;i<(len 1)/2;i ) { s1[j ]=str[i]; } s1[j]='\0'; j=0; for(i=len-1;i>=(len 1)/2-1;i--) { s2[j ]=str[i]; } s2[j]='\0'; /*不相等返回0*/ if(strcmp(s1,s2) != 0) { ret=0; } return ret; } 以上函数判断回文,是回文返回1,不是返回0

Ⅷ 使用指针判断一个数是否为回文数

#include<stdio.h>
int hw(int*p)
{
int t=0,n=*p;
while(*p)
{
t=t*10+*p%10;
*p/=10;
}
if(t==n)
return 1;
return 0;
}
int main()
{
int num,m;
printf("输入num:");
scanf("%d",&num);
m=num;
if(hw(&m))
printf("是回文!!\n");
else
printf("不是回文!!\n");
}

阅读全文

与用指针判断7位回文数相关的资料

热点内容
大流量袋式过滤器生产基地 浏览:995
反渗透什么情况下爆破膜爆破 浏览:37
国家生物污水排放标准 浏览:355
污水厂工程工艺流程 浏览:918
破碎锤带回油滤芯干什么用 浏览:541
金正立式饮水机怎么清洗 浏览:548
java过滤换行符 浏览:199
饮水机里面放出来的水特别脏怎么办 浏览:924
纯水机拍出来的废水 浏览:929
污水处理厂三年规划目标 浏览:630
回收二手过滤机 浏览:155
大车滤芯怎么卖 浏览:472
半透膜蔗糖和葡萄糖液面变化 浏览:1000
青岛市生活污水氨氮吹脱塔哪里有 浏览:775
用过的君子兰土能否回用 浏览:417
机油滤芯可以用什么代替 浏览:634
如何拆鸿芯直饮净水器 浏览:398
自制蒸馏葡萄酒 浏览:741
酚醛树脂专用丁腈橡胶 浏览:852
超滤管3k与10k的区别 浏览:870