关于回文数的程序,红色括号里天什么呀,帮帮忙呀!

jinjin666 2009-05-16 05:00:38
如ABA AAA BBB CBABC 这就是回文,pt是输出所有由这些字母输出的回文最多不得多于2n个字母,现给一个n=3
求所组成的回文数

#include <iostream>

void p(char* s, int i,int n)
{

if (i > 0)
{
int j;
for (j = i - 1; j > 0; --j)
putchar(S[j]);

for ()
putchar(S[j]);
putchar('\n');

for (j = i - 1; j >= 0; --j)
putchar(S[j]);

for ()
putchar(S[j]);
cout << endl;
}
if (i < n)
{
char c;
for (c = 65; c <= 67; ++c)
{
s[i] = c;

}
p();
}
}
int main()
{
char s[3];
p(s, 0, 3);
return 0;
}
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinjin666 2009-05-17
  • 打赏
  • 举报
回复
编译了一下,还是4楼的兄弟正确,多谢大家帮忙!
adventurelw 2009-05-16
  • 打赏
  • 举报
回复
顶4楼
楼主把递归位置都放错了。。。。。。
不过for (j=0; j<i; ++j) //填写回文的另一半
putchar(s[j]);

j初值该为1吧,这是去掉2,23个字符的回文另一半。
healer_kx 2009-05-16
  • 打赏
  • 举报
回复
fule~
ltc_mouse 2009-05-16
  • 打赏
  • 举报
回复
这是一个递归算法~ 不过似乎lz给出的程序中有一个地方不太对
不知如下修改是否正确:
void p(char* s, int i,int n) 
{
if (i > 0)
{
int j;
for (j = i - 1; j > 0; --j)
putchar(s[j]);
for (j=0; j<i; ++j) //填写回文的另一半
putchar(s[j]);
putchar('\n');

for (j = i - 1; j >= 0; --j)
putchar(s[j]);
for (j = 0; j<i; ++j) //另一半
putchar(s[j]);
cout << endl;
}
if (i < n)
{
char c;
for (c = 65; c <= 67; ++c)
{
s[i] = c;
p(s, i+1, n); //递归
}
}
}
jinjin666 2009-05-16
  • 打赏
  • 举报
回复
就是要问括号里填什么!
operatingtuzi 2009-05-16
  • 打赏
  • 举报
回复
不明白啊
for () 这有语法错误吧。。
p();
这。。 函数调用也没有默认形参啊
jinjin666 2009-05-16
  • 打赏
  • 举报
回复
有点乱,再整理一下!
#include <iostream>

void p(char* s, int i,int n)
{

if (i > 0)
{
int j;
for (j = i - 1; j > 0; --j)
putchar(S[j]);

for ()
putchar(S[j]);
putchar('\n');

for (j = i - 1; j >= 0; --j)
putchar(S[j]);

for ()
putchar(S[j]);
cout < < endl;
}
if (i < n)
{
char c;
for (c = 65; c <= 67; ++c)
{
s[i] = c;
} p();
}
}

int main()
{
char s[3];
p(s, 0, 3);
return 0;
}

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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