分别用while ,do-while,for语句求出前20项和

有一个序列:2/1,3/2,5/3,8/5,13/8,21/13 …. 求出这个数列的前20项之和。分别用while 语句、 do-while 语句和for 语句实现。

#include <stdio.h>

void main()
{
int i = 2;
int j = 1;
int k = 0;
int t;
double sum = 0;

// 注释:1.while
while(k < 20)
{
sum += (double)i/j;
if (k < 19)
printf("%d/%d + ", i, j);
else
printf("%d/%d = %f", i, j, sum);
++k;
t = j;
j = i;
i += t;
}

// 注释:2.do while
//do
//{
// sum += (double)i/j;
// if (k < 19)
// printf("%d/%d + ", i, j);
// else
// printf("%d/%d = %f", i, j, sum);
// ++k;
// t = j;
// j = i;
// i += t;
//} while (k < 20);

// 注释:3.for
//for (k = 0; k < 20; ++k)
//{
// sum += (double)i/j;
// if (k < 19)
// printf("%d/%d + ", i, j);
// else
// printf("%d/%d = %f", i, j, sum);
// t = j;
// j = i;
// i += t;
//}
}
完整程序,放入编译器运行吧,注意:当你测试其中一种实现方式时,请把其他两个方式注释起来,不懂的就hi我
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-24
s=0;
a=1;
b=2;
for(i=1;i<=10;i++)
{s=s+(b/a);
a=a+b;
s=s+(a/b);
b=a+b;}

s=0;
a=1;
b=2;
i=0;
while(i<=10);
{s=s+(b/a);
a=a+b;
i=i+1;
s=s+(a/b);
b=a+b;
i=i+1;}

s=0;
a=1;
b=2;
i=0;
do
{s=s+(b/a);
a=a+b;
i=i+1;
s=s+(a/b);
b=a+b;
i=i+1;}
while(i<=8);
第2个回答  2010-11-24
Java程序:

public class Test {

public static void main(String[] args) {
int[] fenzi = new int[20];
int[] fenmu = new int[20];
fenzi[0] = 2;
fenmu[0] = 1;
double sum = (double) fenzi[0] / (double) fenmu[0];
//////////////////////--for--///////////////////////////////////////////////////
for (int i = 1; i < 20; i++) {

fenzi[i] = fenzi[i - 1] + fenmu[i - 1];
fenmu[i] = fenzi[i - 1];
sum += (double) fenzi[i] / (double) fenmu[i];
}
////////////////////////--while--///////////////////////////////////////////////
// int i = 1;
// while (i < 20) {
// fenzi[i] = fenzi[i - 1] + fenmu[i - 1];
// fenmu[i] = fenzi[i - 1];
// sum += (double) fenzi[i] / (double) fenmu[i];
// i++;
// }
/////////////////////////--do-while--///////////////////////////////////////////////
// int i = 1;
// do {
// fenzi[i] = fenzi[i - 1] + fenmu[i - 1];
// fenmu[i] = fenzi[i - 1];
// sum += (double) fenzi[i] / (double) fenmu[i];
// i++;
//
// } while (i < 20);
///////////////////////////////////////////////////////////////////////////////
System.out.println(sum);
}
}

C/C++程序:
#include <stdio.h>
int main() {
int fenzi[20];
int fenmu[20];
fenzi[0] = 2;
fenmu[0] = 1;
double sum = (double) fenzi[0] / (double) fenmu[0];
//////////////////////--for--///////////////////////////////////////////////////
int i;
for (i = 1; i < 20; i++) {

fenzi[i] = fenzi[i - 1] + fenmu[i - 1];
fenmu[i] = fenzi[i - 1];
sum += (double) fenzi[i] / (double) fenmu[i];
}
/*
////////////////////////--while--///////////////////////////////////////////////
*/
/*
int i = 1;
while (i < 20) {
fenzi[i] = fenzi[i - 1] + fenmu[i - 1];
fenmu[i] = fenzi[i - 1];
sum += (double) fenzi[i] / (double) fenmu[i];
i++;
}
*/
/*
/////////////////////////--do while--///////////////////////////////////////////////
*/
/*
int i = 1;
do {
fenzi[i] = fenzi[i - 1] + fenmu[i - 1];
fenmu[i] = fenzi[i - 1];
sum += (double) fenzi[i] / (double) fenmu[i];
i++;

} while (i < 20);
*/
printf("%f\n",sum);

return 0;
}
相似回答