用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.

用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.
2.求级数a=2/1 + 3/2 + 5/3 +8/5 +13/8+21/13…的前30项之和.
3225798 1年前 已收到1个回答 举报

清舞霓裳 幼苗

共回答了23个问题采纳率:87% 举报

由于1000以内的73的倍数与127的倍数不存在相同的(这是因为73是素数,127是素数,它们的最小公倍数是73*127=9271),为了提高性能,则第一题程序可如下
#include
#include
void main( ) {
int i;
double sum = 0.0;
for(i = 73; i < 1000; i += 73)
sum += sqrt(i);
for(i = 127; i < 1000; i += 127)
sum += sqrt(i);
printf("sum=%lfn",sum);
}
第一个for循环执行13次,第二个for循环执行7次,共做21次求sqrt运算和求和运算,远小于1000次.
第二题
#include
void main( ) {
int i,a,b,c;
double sum = 0.0;
for(i = 0,a = 1,b = 1; i < 30; i++) {
c = a + b;
a = b,b = c;
sum += 1.0 * b / a;
}
printf("sum=%lfn",sum);
}

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.018 s. - webmaster@yulucn.com