| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1274 人关注过本帖, 2 人收藏
标题:发个小题目,供大家娱乐下
只看楼主 加入收藏
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
看来解出了
开10000000/32大的数组来存商, 用int型的32位来存余数就能解了
2012-03-20 09:40
seeworld
Rank: 2
等 级:论坛游民
帖 子:19
专家分:39
注 册:2011-10-7
收藏
得分:0 
先在文件F:\\aa.txt中存放N个正整数M1,M2,....MN,(0< Mk <10000000),程序如下
程序代码:
#include<stdio.h>

int main()
{
    FILE *fp;
    char size[1000001]="";
    int num,i,count=0;

    if((fp=fopen("F:\\aa.txt","r"))==NULL)
    {
        printf("open the file error!\n");
        return 0;
    }
    for(i=0;i<1000000;i++)
    {
        if(feof(fp))
            break;
        fscanf(fp,"%d",&num);
        if(size[num]==0)
        {
            size[num]='1';
            count++;
        }
    }
    printf("count=%d\n",count);

    fclose(fp);
    return 0;
}


 
2012-03-20 10:58
yanshuili
Rank: 2
来 自:揭阳
等 级:论坛游民
帖 子:22
专家分:10
注 册:2011-3-28
收藏
得分:0 
菜鸟路过
2012-03-20 11:43
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
12楼完全不对

重剑无锋,大巧不工
2012-03-20 11:45
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
回复 12楼 seeworld
这样你10000000这个数怎么来存

[ 本帖最后由 草狼 于 2012-3-20 12:27 编辑 ]
2012-03-20 12:25
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
楼上的好厉害丶顶你

编程之路定要走完……
2012-03-20 12:34
胜利之神
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-3-20
收藏
得分:0 
菜鸟路过!试问我何时能看的懂啊!
2012-03-20 16:06
zjkedy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:131
注 册:2010-5-14
收藏
得分:0 
回复 8楼 beyondyf
没明白  能否阐述下!
2012-03-20 21:31
seeworld
Rank: 2
等 级:论坛游民
帖 子:19
专家分:39
注 册:2011-10-7
收藏
得分:0 
程序代码:
//先在文件F:\\aa.txt中存放N个正整数M1,M2,....MN,(0< Mk <10000000),程序如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{
    FILE *fp;

    char *size=(char *)malloc(10000000/8);
    memset(size,0,10000000/8);
    int num,i,count=0;

    if((fp=fopen("F:\\aa.txt","r"))==NULL)
    {
        printf("open the file error!\n");
        return 0;
    }
    for(i=0;i<10000000;i++)
    {
        if(feof(fp))
            break;
        fscanf(fp,"%d",&num);
        if((size[num/8]&(1<<num%8)) == 0)
        {
            size[num/8] |=(1<<num%8);
            count++;
        }
    }
    printf("count=%d\n",count);

    free(size);
    fclose(fp);
    return 0;
}
2012-04-02 20:13
两条线
Rank: 2
等 级:论坛游民
帖 子:14
专家分:18
注 册:2012-3-19
收藏
得分:0 
虽然不懂,但也顶一下
2012-04-02 20:22
快速回复:发个小题目,供大家娱乐下
数据加载中...
 
   



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

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