用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.2.求级数a=2/1 + 3/2 + 5/3 +8/5 +13/8+21/13…的前30项之和.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/27 23:57:56
用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.2.求级数a=2/1 + 3/2 + 5/3 +8/5 +13/8+21/13…的前30项之和.
用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.
2.求级数a=2/1 + 3/2 + 5/3 +8/5 +13/8+21/13…的前30项之和.
用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.2.求级数a=2/1 + 3/2 + 5/3 +8/5 +13/8+21/13…的前30项之和.
由于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=%lf\n",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=%lf\n",sum);
}