每日一算法:回文数
【摘要】 #include <stdio.h>#include <string.h> char a[10000000];char b[10000000];char c[10000000]; void reverse(char *s){ char temp; char *last = s; while (*last != '\0') { last++; } la...
-
#include <stdio.h>
-
#include <string.h>
-
-
char a[10000000];
-
char b[10000000];
-
char c[10000000];
-
-
void reverse(char *s)
-
{
-
char temp;
-
char *last = s;
-
while (*last != '\0')
-
{
-
last++;
-
}
-
last--;
-
while (s<last)
-
{
-
temp = *s;
-
*s = *last;
-
*last = temp;
-
s++;
-
last--;
-
}
-
}
-
-
-
int isreverse(const char *s)
-
{
-
int i;
-
int len = strlen(s)-1;
-
for (i=0; i<len; i++,len--)
-
{
-
if (s[i] != s[len])
-
{
-
return 0;
-
}
-
-
}
-
return 1;
-
}
-
-
-
int main()
-
{
-
int i;
-
while (scanf("%s",a) != EOF)
-
{
-
while (!isreverse(a))
-
{
-
-
-
-
int len = strlen(a)-1;
-
int carry = 0;
-
strcpy(b,a);
-
reverse(b);
-
printf("%s--->",a);
-
for (i=0; i<=len;i++)
-
{
-
c[i] = (a[i]-'0' + b[i] - '0' + carry);
-
carry = (c[i]) / 10;
-
c[i] = c[i] % 10 + '0';
-
}
-
if (carry != 0)
-
{
-
c[i] = carry + '0';
-
c[++i] = '\0';
-
}
-
else
-
{
-
c[i] = '\0';
-
}
-
reverse(c);
-
strcpy(a,c);
-
}
-
printf("%s\n",a);
-
-
}
-
return 0;
-
}
-
-
-
-
-
文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq523176585/article/details/16920981
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)