也来做下欧拉项目练习题: 题目001

/*
第一题:
描述:
If we list all the natural numbers below 10
that are multiples of 3 or 5, we get 3, 5, 6 and 9.
The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
*/

#include <stdio.h>
#include <stdlib.h>

#define TEST 1           //编程之前就应该考虑测试(运行时将1改为0)

#if TEST
  #define END_NUM       10       //问题给出的常数  
  #define SUM               23
#else
  #define END_NUM       1000       
#endif

  #define BEGIN_NUM     1       
  #define FAC_1             3
  #define FAC_2             5

int sum_of_mul (const int ,const int ,const int ,const int ) ;

int main( void )
{
   printf ( "the sum of all the multiples"   //太长的string literal
            " of %d or %d below %d " ,      //可以用这种方法“分割”
            FAC_1 , FAC_2 , END_NUM       
           ); 
   printf ( "is  %d.\n",
            sum_of_mul ( BEGIN_NUM , END_NUM , FAC_1 , FAC_2  )
           );

              
 #if TEST
   printf ( "= %d\n", SUM ) ;             
 #else
 #endif
 
   system("PAUSE"); 
   return 0;
}

int sum_of_mul (const int begin ,const int end ,
                        const int fac1  ,const int fac2 )
{
    int sum = 0 ;
    int i ;
    for( i = begin ; i < end ; i ++ )
      {
         if ( i % fac1 == 0 || i % fac2 == 0 )
           {
             sum += i ;  
           } 
      }
    return sum ;
}

参考博文
http://www.cnblogs.com/zhouyinhui/archive/2011/01/05/1926769.html

posted @ 2011-03-06 18:29  键盘农夫  阅读(1202)  评论(0编辑  收藏  举报