2226844502
发表于 2019-9-26 17:06:07
@Test
public void test02() {
int a = 1, b = 0, c = 0, num = 0;
while (c >= 0) {
c = a + b;
a = b;
b = c;
if (c >= 4000000) {
break;
}
System.out.println(c);
if (c % 2 == 0) {
num += c;
}
}
// System.out.println(num);
}
天云TY
发表于 2019-10-4 16:26:08
import tkinter as tk
a,b,c=1,1,1
x = 0
while True:
c = a + b
a = b
b = c
if c < 4000000 and c % 2 == 0:
x += c
elif c >= 4000000:
break
r = tk.Tk()
tk.Label(r,text=x).pack()
r.mainloop()
1666194196
发表于 2019-10-8 16:31:21
#include <stdio.h>
void main(){
//斐波那契数列中的每一项都是前两项的和。由1和2开始生成的斐波那契数列前10项为:
//1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
//考虑该斐波那契数列中不超过四百万的项,求其中为偶数的项之和。
long x;//400万项,说明是个数组
x=1;//定义前两个值,用来运算
x=2;//
long i,sum=x;//定义的数中有偶数,先加在sum中
for(i=2;i<10;i++){//在这个数组内循环一遍
x=x+x;//第三个数开始,等于前两个数的和 ,循环给x及以后的数赋值
if(x%2==0){//如果这个数是偶数(能整除2)
sum+=x;//加到sum里面
}
}
printf("sum=%d\n",sum);//输出结果
}
杨扬阳羊洋
发表于 2019-12-18 10:31:25
int find_odd(int maxnum)
{
int a=1,b=2,sum=2;
int *p;
for(int i=1;i<maxnum;i++)
{
if(i>2)
{
p=&i;
if( (*p) == (a+b) ) // 找出斐波那契数
{
printf("p=%d\n",*p);
a=b;
b=*p;
if( (*p)%2 == 0 ) // 找出斐波那契数中的值为偶数的项
{
sum+=*p;
printf("sum=%d\n",sum);
}
}
}
}
return sum;
}
guoquanli
发表于 2019-12-31 13:44:17
#include <stdio.h>
int main(int argc,char **argv)
{
long int sum= 2;
int var1 = 1;
int var2 = 2;
int var3 = var1 + var2;
while(var3 <= 4000000){
if(var3 % 2 == 0){
sum += var3;
}
var1 = var2;
var2 = var3;
var3 = var1 + var2;
}
printf("sum is %ld\n",sum);
return 0;
}
hjh18944743801
发表于 2020-1-10 17:07:38
#include <stdio.h>
int main()
{
int a1 = 1, a2 = 2, an, sum = 0;
an = a1 + a2;
while(an <= 4000000){
a1 = a2;
a2 = an;
an = a1 + a2;
if(an % 2 == 0)
sum += an;
}
printf("%d\n", sum);
return 0;
}
office
发表于 2020-2-14 12:06:58
x = 0
y = 1
z = 0
while True:
x = x + y
if x >= 4e6:
print('A',z)
break
y = x + y
if y >= 4e6:
print('B',z)
break
if y%2 == 0:
z = z + y
if x%2 == 0:
z = z + x
wyywang
发表于 2020-2-22 11:51:35
#include <stdio.h>
int main()
{
long long int a = 1, b= 2, c = 0,sum = 0, a1 = 0, b1 = 0;
while(1)
{
if (c > 4000000){break;}
c = a + b;
a = b;
b = c;
if(c % 2 ==0){sum += c;printf("111");}
}
printf("%dkkkk", c);
printf("答案:%d", sum + 2); //刚开始2是偶数,加上。
return 0;
}
啦啦啦13
发表于 2020-2-27 15:41:00
def Fibonacci(x):
o =
a,b = 1,2
for i in range(2,x):
a,b = b,a+b
if b % 2 == 0:
o.append(b)
return sum(o)
if __name__ == '__main__':
print(Fibonacci(10))
Cool_Breeze
发表于 2020-2-29 16:13:08
#include <stdio.h>
int main(void)
{
int a=1,b=2;
int tatol=0,sum=2;
do
{
if (sum>4000000) break;
if (!(sum%2)) tatol+=sum;
sum=a+b;
a=b;
b=sum;
}while(1);
printf("%d",tatol);
return 0;
}4613732
--------------------------------
Process exited after 0.01523 seconds with return value 0
请按任意键继续. . .
代号-K
发表于 2020-3-11 21:11:41
答案:4613732
int calculateFibona(int flag)
{
int ret = 0;
int a = 1;
int b = 1;
int c = a;
while(a < flag)
{
if(a % 2 == 0)
{
ret += a;
}
c = a;
a = a + b;
b = c;
}
return ret;
}
int main(int argc, char *argv[])
{
int sum = calculateFibona(4000000);
printf("%d\n",sum);
return 0;
}
多冷颜
发表于 2020-3-31 11:44:49
def Fibi(num):
re = 2
a, b = 1, 2
for i in range(2, num):
a, b = b, a + b
if b % 2 == 0 and b <= 4000000:
re += b
else:
continue
return re
if __name__ == '__main__':
print(Fibi(40))
永恒的蓝色梦想
发表于 2020-4-18 12:54:06
本帖最后由 永恒的蓝色梦想 于 2020-11-20 22:33 编辑
4613732#include<iostream>
unsigned int a = 0, b = 1, sum = 0, temp;
int main(void) {
using namespace std;
ios::sync_with_stdio(false);
while (a < 4000000) {
sum += a;
a += b;
b += a;
temp = a + b;
a = b;
b = temp;
}
cout << sum << endl;
return 0;
}
leon0149
发表于 2020-5-6 22:59:42
#include <stdio.h>
int main(void) {
int i = 1;
int n = 2;
int sum = 2;
while (n <= 4000000) {
int temp = n;
n += i;
i = temp;
if (n % 2 == 0)
sum += n;
}
printf("%d", sum);
return 0;
}
永恒的蓝色梦想
发表于 2020-5-9 13:23:56
office 发表于 2020-2-14 12:06
这么跟你说吧,版主也不知道答案,他只是个翻译题目的
liuzhengyuan
发表于 2020-5-12 10:00:40
本帖最后由 liuzhengyuan 于 2020-5-12 10:06 编辑
斐波那契数列怎么做我忘了{:10_284:}
完了,卡在 2 了{:10_266:}
终于做好了……
#include<iostream>
using namespace std;
int main()
{
int a, b, c, sum=0;
a=1;b=1;
for(;b<4000000;)
{
c = a+b;
a = b;
b = c;
if(b%2 == 0)
{
sum+=b;
}
}
cout<<sum;
}
永恒的蓝色梦想
发表于 2020-5-12 21:21:08
liuzhengyuan 发表于 2020-5-12 10:00
斐波那契数列怎么做我忘了
完了,卡在 2 了
不明白你为什么要用for循环{:10_277:}
atomloveanne
发表于 2020-6-2 19:19:58
本帖最后由 atomloveanne 于 2020-6-3 01:12 编辑
# # 题目2:在斐波那契数列中,找出4百万以下的项中值为偶数的项之和
# 1 2 3 5 8 13 21 34 ...
import datetime
start = datetime.datetime.now()
print("程序1开始时间:", start)
result = 0
num0 = 0
num1 = 1
num2 = 0
# temp = 1
while num2 < 4000000:
num2 = num0 + num1
if num2 % 2 == 0:
result += num2
print('result = ', result)
run = datetime.datetime.now()
print("程序2运行时间:", run)
print("程序2运行了", run - start)
num0 = num1
num1 = num2
# temp += 1
print('''程序1结果是''')
print(result)
end = datetime.datetime.now()
print("程序1结束时间:", end)
print("程序1运行时间", end - start)
程序1结果是
4613732
程序1结束时间: 2020-06-03 01:11:14.858601
程序1运行时间 0:00:00.260303
583164028
发表于 2020-8-7 21:21:59
本帖最后由 永恒的蓝色梦想 于 2020-8-8 12:57 编辑
看了一圈大部分都是循环 判定
根据斐波那契数列通向公式计算400万的项,向下取整
观察下表
n12345678910111213141516
Fibonacci1123581321345589144233377610987
偶数出现在3,6,9,。。项 n+=3可以求和了
For < 4000000, i += 3, t += Fibonacci];t
斐波那契数列通向公式
https://s1.ax1x.com/2020/08/08/a5MkY4.png
永恒的蓝色梦想
发表于 2020-8-8 12:51:53
本帖最后由 永恒的蓝色梦想 于 2020-8-8 12:57 编辑
583164028 发表于 2020-8-7 21:21
看了一圈大部分都是循环 判定
根据斐波那契数列通向公式计算400万的项,向下取整
观察下表偶数出现在 ...
哈哈,你可以看下 134 楼,用的是同样的原理,只不过没有开数组{:10_277:}
svg 图像无法正常显示,所以我帮你编辑了一下,改成了 PNG 图片{:10_256:}