题目2:在斐波那契数列中,找出4百万以下的项中值为偶数的项之和。

---恢复内容开始---

本题来自:http://pe.spiritzhang.com/index.php/2011-05-11-09-44-54/3-24

分析:400万项之和,数太大,故使用usinged long long。

        int 字节:4 取值范围:-2147438648~+2147438647
       long int 字节:4 取值范围:-2147438648~+2141438647
long long int 字节:8      取值范围:-9223372036854775808~+9223372036854775807

 1 #include <stdio.h>
 2 #define TRUE 1
 3 
 4 void main()
 5 {
 6     unsigned long long sum=0;            //偶数和
 7     unsigned int x=0,y=1,z,conut,conut_num;//x,y,z分别表示第一、第二、第三个数。conut表示项数,conut_num表示求和中加的次数
 8     while(TRUE)
 9     {
10         z=x+y;                 //第三个数是前两个数的和
11 if(z%2==0)              //判断这数是不是偶数
12 { 13 sum+=z; 14 conut_num++; 15 } 16 conut++; 17 x=y;y=z;      18 if(conut>=4000000) 19 break; 20 } 21 printf("共有%d个数被相加,和为%lld\n",conut_num,sum); 22 }

 

扩展知识:long long int不是所有编译器都支持的,有些支持这种数据类型的,可能是真支持,也可能是模拟支持,总之它不是标准类型。在.NET4框架中,有64位的长整型数据,这个框架下的所有语言都能使用,但不是所有语言本身都有定义这样的数据类型,也就是说,你尽可使用_int64或System.Int64来定义64位的整数,但未必有long long这样的定义。

VS2010的.NET4中,C#语言的int是32位的,long是64位的,但其C++的int和long都是32位的,后者支持64位的long long类型。

 

如果在linux系统中,gcc编译,long long是C99才有的,所以gcc编译时候:

gcc -std=c99 "文件名"

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值