| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1255 人关注过本帖
标题:急~~~请问这道题怎么做?编程思路(算法)是什么?
只看楼主 加入收藏
hxlich
Rank: 2
等 级:论坛游民
帖 子:26
专家分:45
注 册:2010-3-28
收藏
得分:0 
值得学习
2010-04-06 10:19
阿邋
Rank: 2
等 级:论坛游民
帖 子:84
专家分:41
注 册:2009-3-6
收藏
得分:0 
哦,呵呵,我懂了,原来其实 i < 6, j<=32 就行了。谢谢楼上提醒啊!

我并不具有我想要的一切,只是我所有的都是我想要的!
2010-04-06 11:20
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

#define LEN 6                  //数列长度
#define COUNT 160        //范围

int ary[LEN], cnt = 0;
int *a = NULL;

int judge(int m)
{
    int i;
    for(i=2; i<=sqrt(m);i++)
        if(m%i==0)
            break;
    if(i>sqrt(m))
        return 1;
    else
        return 0;
}
void GetNext(int s, int n, int d)
{
    int i;
    if (n == LEN)
    {
        for (i = 0; i < LEN; i ++)
        {
            printf("%d ", ary[i]);
        }
        printf("\n");
        return;
    }        
    for (i = s; i < cnt; i ++)
    {
        if (a[i]-ary[0] == n*d)
        {
            ary[n++] = a[i];
            GetNext(i+1, n, d);
            return;
        }
    }
}

void GetQueue(void)
{
    int i, j, d;
    for (i = 0; i < cnt; i ++)
    {
        for (j = i+1; j < cnt; j ++)
        {
            d = a[j] - a[i];
            ary[0] = a[i];
            ary[1] = a[j];
            GetNext(j, 2, d);
        }
    }
}

int main(void)
{
    int i;
    memset(ary, 0, sizeof(ary));
    for (i = 2; i < COUNT; i ++)
    {
        if (judge(i))
        {
            a = realloc(a,sizeof(int)*(++cnt));
            a[cnt-1] = i;
        }
    }
    for (i = 0 ; i < cnt; i ++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
    GetQueue();

    free(a);
}
2010-04-06 16:56
liucs116
Rank: 2
等 级:论坛游民
帖 子:130
专家分:29
注 册:2009-11-4
收藏
得分:0 
回复 13楼 ldg628
貌似复杂了点。。。。。。。。。。

学无止境!
2010-04-06 21:16
lukunstriker
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2010-3-29
收藏
得分:5 
#include <stdio.h>
main()
{int i, j, m=5, n,  t=0, half, xx[160];



while(m<160)

{half=m/2;
    for(i=2;i<=half;i++)
    if(m%i==0)
    break;
if(i>half)
{
    xx[t]=m;
   t++;

}
    m++;
    }




for(i=0;i<t-5;i++)
    for(j=i+1;j<t;j++)
{n=xx[j]-xx[i];
if(xx[j+4]-xx[i]!=5*n)
break;

else if (xx[j+3]-xx[i]!=4*n)
break;

else if(xx[j+2]-xx[i]!=3*n)
break;

else if(xx[j+1]-xx[i]!=2*n)
break;/**/

else
  printf("%d %d %d %d %d %d " ,xx[i],xx[i+1],xx[i+2],xx[i+3],xx[i+4],xx[i+5]);

    }
    if(i>=t-5)
        printf("没有满足条件的数\n");


}  运行结果好像是没有
2010-04-06 21:21
lukunstriker
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2010-3-29
收藏
得分:0 
回复 6楼 liucs116
请问那个 for(i=0;i<25;i++)
        for(j=1;j<=32;j++)
  if(sushu(f[i]+j)==1 && sushu(f[i]+j*2)==1 && sushu(f[i]+j*3)==1 &&sushu(f[i]+j*4)==1 && sushu(f[i]+j*5)==1)

里的for(i=0;i<25;i++) 的25是怎么来的?

               
2010-04-08 11:42
快速回复:急~~~请问这道题怎么做?编程思路(算法)是什么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022892 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved