1,2,1,2,3,2,1,2,3,4,3,2,1......什么序列??

Awang_126 2004-03-13 11:54:52
1,2,1,2,3,2,1,2,3,4,3,2,1......这是一个什么序列呀??
要求输入地N项,输出它的值
...全文
46 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdy9927 2004-03-26
  • 打赏
  • 举报
回复
liuheliaoshi7879(虾米)
为什么这么问???
liuheliaoshi7879 2004-03-20
  • 打赏
  • 举报
回复
楼主是毕业长春工学院的吗
pcyy 2004-03-20
  • 打赏
  • 举报
回复
果然强也!!!!!!!!!!!!!!!!!
duckyaya 2004-03-18
  • 打赏
  • 举报
回复
楼上的楼上那个程序有遗漏点,n=1时输出为3,不过,这只个是单独情况,加上即可。

大家看下面这个程序:
#include"iostream"
#include<cmath>
#include<cstdlib>
using namespace std;

void main()
{
int n,i,j,a=1,b=0;
cout<<"Please Enter N:"<<'\t';
cin>>n;
int *p=new int[n*2];//这里数组大小到底如何定义才能最节省空间?
//n+sqrt(n)都是131770为界限,之前可以,之后就越界了?
//大虾们,谁可以告诉我怎么了?谢谢~~
p[b]=1;
for(i=1; b<n-1; i++ )
{
p[++b]=++a;
for(j=0;j<i;j++)
p[b+1]=p[b++]-1;
for(j=0;j<i;j++)
p[b+1]=p[b++]+1;
}
cout<<p[n-1]<<endl;
delete p;
}
cutestar 2004-03-16
  • 打赏
  • 举报
回复
把1看作分隔值,去掉1为:
2
232
23432
...
duckyaya 2004-03-15
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <math.h>
void main()
{
int n,m,g;
cin>>n;
m=sqrt(n);
g=abs(m*m+m+1-n)+1;
cout<<g;
}

纯粹的输入你要求的值,然后输出是几,一种比较白的做法
redleaves 2004-03-15
  • 打赏
  • 举报
回复
一个简单的实现,不知道合不合你的意.
void Serial( const unsigned long uMax ) {
const unsigned long uMin = 1;
unsigned long uCurMax = 2;
while( uCurMax <= uMax ) {
unsigned long uCurrent = uMin;
while ( uCurrent <= uCurMax ) {
printf("%d,",uCurrent++);
}
uCurrent = uCurMax - 1;
while ( uCurrent > uMin ) {
printf("%d,",uCurrent--);
}
uCurMax++;
}
}

生成方式如下:
基本串 动作
12 1,2,基本串最大值加1
123 1,2,3,2,基本串最大值加1
1234 1,2,3,4,3,2,基本串最大值加1
....
cnxiaohai 2004-03-15
  • 打赏
  • 举报
回复
以串回文数而已~~~~~~~~~~~~~~
wilfoddillon 2004-03-14
  • 打赏
  • 举报
回复
打出的代码是
for(i=0;i<n;i++)
{
for(j=0;j<=2*i;j++)
{
printf("%d",a[i][j])
}
printf("\n");

}
wilfoddillon 2004-03-14
  • 打赏
  • 举报
回复
int a[30][30];
int n ; //控制要打出几行;
int m,t; //m记录要打的数,t是开关变量;
for(i=0;i<n;i++)
{ m=i+1;t=0;
for(j=0;j<=2*i;j++)
{
a[i][j]=m;
m--;
if(a[i][j]==1)
t=1;
if(t==1)
m++;
}


}
大至把算法写出来的```不是全部代码```看看吧`不知道你的意思是不是这样```
实现结果是
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
...............

然后你把这个打出来就可以了``我没写完``这只是把数组给赋值```
wilfoddillon 2004-03-14
  • 打赏
  • 举报
回复
int a[30][30];
int n ; //控制要打出几行;
int m,t; //m记录要打的数,t是开关变量;
for(i=0;i<n;i++)
{ m=i+1;t=0;
for(j=0;j<=2*i;j++)
{
a[i][j]=m;
m--;
if(a[i][j]==1)
t=1;
if(t==1)
m++;
}
printf("\n");

}
大至把算法写出来的```不是全部代码```看看吧`不知道你的意思是不是这样```
实现结果是
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
...............
umask 2004-03-14
  • 打赏
  • 举报
回复
1, 2, 1
1, 2, 3, 2, 1
1, 2, 3, 4, 3, 2, 1
duckyaya 2004-03-14
  • 打赏
  • 举报
回复
不好意思,偶说错了
1,
2,1,2
3,2,1,2,3
4,3,2,1,2,3,4
。。。。。。。。。。。。。。。。。
召棠 2004-03-14
  • 打赏
  • 举报
回复
up

也可以是
1,2 1,2,3,2 1,2,3,4,3,2 1,2,3,4,5,4,3,2 ......
gengrun 2004-03-14
  • 打赏
  • 举报
回复
1, 2,1,2, 3,2,1,2,3, 4,3,2,1,2,3,4.......
召棠 2004-03-14
  • 打赏
  • 举报
回复
楼上的说得有缺陷,应是2+4+6+8+10+。。。
junnyfeng 2004-03-14
  • 打赏
  • 举报
回复
mk
duckyaya 2004-03-14
  • 打赏
  • 举报
回复
你看不出规律么?1,2,1,对称
1,2,3,2,1对称
1,2,3,4,3,2,1对称
3+5+7+9+11。。。。。。。。。
然后在对称披开~~~~~~~~~

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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