jepg数组问题

antantan 2008-05-09 05:03:41
jepg数组问题
现设有一数组,依次存入的数据如下所示:
static const unsigned char jepg[64]={
0,
8, 1,
2, 9, 16,
24, 17, 10, 3,
4, 11, 18, 25, 32,
40, 33, 26, 19, 12, 5,
6, 13, 20, 27, 34, 41, 48,
56, 49, 42, 35, 28, 21, 14, 7,
15, 22, 29, 36, 43, 50, 57,
58, 51, 44, 37, 30, 23,
31, 38, 45, 52, 59,
60, 53, 46, 39,
47, 54, 61,
62, 55,
63 };
求一循环,一次存入该数据,如果是大牛,望能总结存入改数组的数学表达式,即数学模型。
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
A_Knuth_A 2008-05-09
  • 打赏
  • 举报
回复
#include "stdafx.h"
void main(void)
{
unsigned char jpeg[64];
memset(jpeg,0,64*sizeof(unsigned char));

int i,j;

for(i=0;i<8;i++)
{
jpeg[((i==0)?0:(unsigned char(i*(3+i)/2.0)))+((i%2)?0:(-i))]=i;
jpeg[63-(((i==0)?0:(unsigned char(i*(3+i)/2.0)))+((i%2)?0:(-i)))]=63-i;

for(j=1;j<(i+1);j++)
{
jpeg[((i==0)?0:(unsigned char(i*(3+i)/2.0)))+((i%2)?0:(-i))+((i%2)?(-j):j)]=7*j+i;
jpeg[63-(((i==0)?0:(unsigned char(i*(3+i)/2.0)))+((i%2)?0:(-i))+((i%2)?(-j):j))]=63-(7*j+i);
}
}

int I=0;
for(i=1;i<16;i++)
{
for(j=0;j<((i>8)?(16-i):i);j++)
{
printf("%2d,",jpeg[I++]);
}
printf("\n");
}
getchar();
}

///////////////////////////////////////////////////
不明白的发邮件给我a_knuth_a@yahoo.com.cn
antantan 2008-05-09
  • 打赏
  • 举报
回复
呵呵,希望继续讨论。还没有其他想法没有。按你的之字行说说遍历顺序吧。呵呵,这是一道很有趣的数学题
oo 2008-05-09
  • 打赏
  • 举报
回复
一个数组:
0,1,2,3,4,5,6,7
8,9,10,11,12,13,14,15
16,17,18,19,...

56,57,58,59,60,61,62,63

从左上角开始
0
然后
8,1,
然后
2,9,16

就是一个‘之’字形的遍历

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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