您的位置:首页 > 编程语言 > C语言/C++

C语言初步-第35讲: 问题求解方法——迭代(另类求和)

2017-09-19 10:18 429 查看
任务和代码:

/*
*Copyright (c)2017 CSDN学院
*All rights reserved
*文件名称:main.c
*作者: Osseyda
完成日期:2017.9.19
*版本号:v2.
*
*问题描述:求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字。
例如2+22+222+2222( 此时a=2,n=4),a和n均由键盘输入。
*问题输出:输出其结果
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int a,n,count=1,Sn=0,Tn=0;
printf("请输入 a 和 n 的值:\n");
scanf("%d %d",&a,&n);
while (count<=n)
{
Tn=Tn+a*pow(10,(count-1));
Sn=Sn+Tn;
count++;
}
printf("a+aa+aaa+...=%d\n",Sn);
return 0;
}
运行结果:



知识点总结:

1.运用迭代及循环求特殊多项式的和;2.迭代表达式的描述

心得:

可以看到,运行结果其实是错的,若将迭代式改为 Tn=Tn*10+a;则运行结果正确。

最大出错原因在于pow(x,y)中x、y及整个表达式均是double型,

故数值计算中应尽量避免强制类型转换。

最大出错原因在于pow(x,y)中x、y及整个表达式均是double型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 疑问