小编sli*_*773的帖子

Euler项目的非强力解决方案25

项目欧拉问题25:

Fibonacci序列由递归关系定义:

F n = F n-1 + F n-2,其中F 1 = 1且F 2 = 1.因此前12项将是F 1 = 1,F 2 = 1,F 3 = 2,F 4 = 3 ,F 5 = 5,F 6 = 8,F 7 = 13,F 8 = 21,F 9 = 34,F 10 = 55,F 11 = 89,F 12 = 144

第12个学期F 12是第一个包含三位数的术语.

Fibonacci序列中包含1000位数的第一项是什么?

我在Python中制作了一个强力解决方案,但计算实际解决方案绝对是永远的.任何人都可以提出非暴力解决方案吗?

def Fibonacci(NthTerm):
    if NthTerm == 1 or NthTerm == 2:
        return 1 # Challenge defines 1st and 2nd term …
Run Code Online (Sandbox Code Playgroud)

python brute-force fibonacci

8
推荐指数
1
解决办法
6798
查看次数

将Perl中的Pi舍入到第1亿位小数位?

对于Science Fair项目,我正在测试您选择的编程语言如何影响性能.我这样做是通过用Java,Ruby,Perl和Python制作脚本来计算Pi到第1亿位小数.我从Perl开始,因为我对Perl最熟悉.然而,这给桌子带来了一个有趣的问题.我需要将Pi轮到Perl中的第1亿位,但据我所知,Perl对于这种情况没有很好的舍入方法.只有像这样的东西

use Math::Round;
$rounded = nearest(0.1, $numb);
Run Code Online (Sandbox Code Playgroud)

这有点问题,因为我不想坐在我的电脑上打字1亿个零.据我所知,sprintf和printf没有任何好转; 另外,他们有那个讨厌的事情.任何人都可以帮忙吗?

PS我打算使用Chudnovsky Formula,如果对任何人都重要的话.

perl pi rounding

4
推荐指数
1
解决办法
744
查看次数

(void*)指针和&指针之间的区别?

我正在使用LCTHW学习C ,我遇到了一些我感兴趣的指针,所以我发现了这一点.通过它,我发现这个代码:

void *vptr; // declare as a void pointer type
int val = 1;
int *iptr;

// void type can hold any pointer type or reference
iptr = &val;
vptr = iptr;
printf("iptr=%p, vptr=%p\n", (void *)iptr, (void *)vptr);
Run Code Online (Sandbox Code Playgroud)

跑步给我这样的东西:

iptr=0x7fffa97a8464, vptr=0x7fffa97a8464
Run Code Online (Sandbox Code Playgroud)

显然,内存地址是相同的,所以C为它们打印出相同的东西.但是,在试验代码并放入时,而不是最后一行:

printf("iptr=%p, vptr=%p\n", &iptr, &vptr);
Run Code Online (Sandbox Code Playgroud)

我明白了:

iptr=0x7fff61a21ee0, vptr=0x7fff61a21ed8
Run Code Online (Sandbox Code Playgroud)

我打印出两个不同的内存地址,这不应该发生.第一个问题:如果这里的&符号表示"地址",正如丹尼斯在帖子中所说,为什么这两行代码会输出两个不同的东西?第二个问题:由于两行代码输出两个不同的东西,显然(void*)指针必须表示与&指针不同的东西.这两件事有什么区别?

c pointers void memory-address

2
推荐指数
1
解决办法
793
查看次数

标签 统计

brute-force ×1

c ×1

fibonacci ×1

memory-address ×1

perl ×1

pi ×1

pointers ×1

python ×1

rounding ×1

void ×1