| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2395 人关注过本帖
标题:projecteuler.net 系列问题转贴
只看楼主 加入收藏
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:39 
projecteuler.net 系列问题转贴
是小弟意外发现的一个类似 oj 但是远没有 oj 那么蛋疼的网站。
小弟也觉得这里的许多问题都很有趣。
所以向大家推荐一下。
如果英文水平可以的话请直接移步官方网站 http://
对自己的英文水平没什么信心也没关系,小弟在这里逐步转帖 projecteuler 的题目。
至于答案,大家可以自己到官方网站提交,如果大家希望小弟在这里公开小弟也会照办。

废话不多说,先转帖 projecteuler 1 ~ 3 题。高手们可能会觉得非常简单,但是别急,后面有难的,嘿嘿~

问题 1
如果我们列出 10 以下 能够被 3 或 5 整除的所有自然数,我们得到 3, 5, 6, 9。这些数字的和为 23。
请找出 1000 以下所有能被 3 或 5 整除的自然数的和

问题 2
Fibonacci 数列的前十项为:
    1, 2, 3, 5, 8, 13, 21, 34, 55, 89
请考察 Fibonacci 数列的各项,计算不超过 4,000,000 所有值为偶数的项的和

问题 3
13195 的质因子有:5, 7, 13, 29
请找出 600851475143 的最大的质因子

希望大家能多多交流这三道题的思路。

ps:请大家在自己的代码后面附上运行结果~ 如果可以的话也请附上运行时间

[ 本帖最后由 voidx 于 2011-6-23 00:12 编辑 ]
搜索更多相关主题的帖子: 官方网站 英文 答案 
2011-06-22 23:19
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:7 
1、
程序代码:
#include <stdio.h>

int main(void) {
    int i, sum = 0;
    for(i = 1; i < 1000; i++)
        (i % 3 == 0 || i % 5 == 0) && (sum += i);
    printf("%d\n", sum);
    return 0;
} /* Output:
233168

Process returned 0 (0x0)   execution time : 0.688 s
Press any key to continue.
*/

2、
程序代码:
#include <stdio.h>

int f(int n) {
    int temp, i = 1, j = 2, k = 2;
    while(k++ < n) {
        temp = j;
        j = i + j;
        i = temp;
    }
    return n <= 1 ? 1 : j;
}

int main(void) {
    int i, j, sum = 0;
    for(i = 1; (j = f(i)) <= 4000000; i++)
        j % 2 || (sum += j);
    printf("%d\n", sum);
    return 0;
} /* Output:
4613732

Process returned 0 (0x0)   execution time : 0.250 s
Press any key to continue.
*/
第三题不会啊。


[ 本帖最后由 lz1091914999 于 2011-6-23 00:13 编辑 ]

My life is brilliant
2011-06-22 23:41
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 2楼 lz1091914999
1. 错。题目要求求和 (修改后已正确)
2. 错。题目要求 Fibonacci 数列第二项为 2 而且你求的是值为奇数的项的和 红色这个是我看错了,不好意思(现已正确)

嘿嘿~

强势请求大家继续提出不同解法,优化性能,榨干数学的每一滴血

[ 本帖最后由 voidx 于 2011-6-23 00:15 编辑 ]
2011-06-22 23:56
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
真心恳求大家提出各种不同解题方法,优化性能~~
2011-06-23 11:32
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:7 
Question 1
程序代码:
#include <iostream>
int sum_mod(int min,int max)
{
  return (max/min)*(min+max)/2;
}
int main()
{
  std::cout<<sum_mod(3,999)+sum_mod(5,995)-sum_mod(15,990)<<std::endl;
  return 0;
}
2011-06-23 14:22
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
我 ca, projecteuler,居然有人用AT&T汇编写了第一题。
2011-06-23 14:28
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
question 3
程序代码:
#include <iostream>
#include <cstdlib>
#include <cmath>
bool isPrime(int m)
{
  for( int i =2; i <= sqrt(m)+1; i++ )
    {
      if ( m % i == 0)
        return false;
    }
  return true;
}
int main()
{

  int index = 2 ;
  long long num = 600851475143;
  int maxPrime = -1;
  while( index <= num )
    {
      if ( isPrime(index) && num % index == 0 )
        {
          num /= index;
          maxPrime = index;
        }
      index ++;
    }
  std::cout<<maxPrime<<std::endl;
  return 0;
}
2011-06-23 14:50
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 7楼 Devil_W
请再把这个算法进一步优化~

而且,projecteuler 真的是高手云集啊~
2011-06-23 14:59
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
question 2
程序代码:
#include <iostream>
int buf[1000]={0,1,2};
int main()
{
  int index = -1;
  for ( int i = 3; buf[i-1] < 4000000 ;i++)
    {
      buf[i] = buf[i-1] + buf[i-2];
      index = i;
    }
  long sum = 0;
  for ( int i=2;i<=index;i++)
    {
      if ( buf[i] % 2 == 0)
        sum += buf[i];
    }
  std::cout<<sum<<std::endl;
}
2011-06-23 15:07
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
貌似我给的算法比2楼的快不是一个数量级。
2011-06-23 15:14
快速回复:projecteuler.net 系列问题转贴
数据加载中...
 
   



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

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