- 寻找每一项的规律,再求和。
#include计算a+aa+aaa…的值int main() { int i,sum = 0,term; for (i = 1;i <= 99;i += 2) { term = i * (i + 1) * (i + 2); sum += term; } printf("sum=%d",sum); return 0; }
- 方法1。计算第一个值、求和、第二个值用第一个值乘以10加上第一个值。
#includeint main() { int n,a,sum = 0,term = 0; printf("请输入n和a的值:n"); scanf("%d,%d",&n,&a); for (int i = 1;i <= n;i++) { term += a; sum += term; a *= 10; } printf("sum=%d",sum); return 0; }
- 方法2。第二个值用第一个值乘以10加上第一个值,求和。
#include计算1-1/2+1/3-1/4…,直到最后一项绝对值小于10^-6。int main(void) { int n,a,term=0,sum=0; printf("请输入n和a的值:n"); scanf("%d,%d",&n,&a); for (int i = 1;i <= n;i++) { term = term * 10 + a; sum += term; } printf("sum=%d",sum); return 0; }
- 把握精度。
#include计算sin(x)=x-x ^3/3!+x ^5/5!-x ^7/7!..,直到最后一项绝对值小于10 ^-5。int main(void) { int i = 1; float sign = 1; double sum = 0; while ((1.0/i) >= 1e-6 || (1.0/i) <= 1e-6) { sum += sign / i; i++; sign = -sign; } printf("sum=%lf",sum); return 0; }
- 防止溢出
#include#include int main(void) { int n = 1,count = 1; float x; double sum,term; printf("请输入x值:n"); scanf("%f",&x); sum = x; term = x; do{ term = -term * x * x / ((n + 1) * (n + 2)); sum += term; n += 2; count++; }while (fabs(term) >= 1e-5); printf("sin(x)=%f,count=%d",sum,count); }



