【问题描述】
已知sin(x)的泰勒展开式为:
sin(x) = x/1! - x^3/3! + x^5/5! - x^7/7! + ……
当某一项的绝对值小于ξ时,停止计算。
输入x及ξ的值,输出sin(x)的值,小数点后保留5位小数。
【输入形式】
1.7 0.1
【输出形式】
sin(x) = 0.99949
#include
using namespace std;
int main()
{
double x,mi,jc=1,g,sshu,sum=0,h=2;
cin>>x>>g;
for(int i=1;;i=i+2)
{
mi = pow(x,i);
for(double j=2;j<=i;j++)
{
jc=jc*j;
}
sshu=mi/jc;
jc=1;
if((fabs(sshu))<(g))break;
sum=pow(-1,h)*(sshu)+sum;
h++;
}
cout<<"sin(x)="<
【问题描述】
已知cos(x)的泰勒展开式为:
cos(x) = x^0/0! - x^2/2! + x^4/4! - x^6/6! + ……
当某一项的绝对值小于ξ时,停止计算。
输入x及ξ的值,输出cos(x)的值,小数点后保留5位小数。
【输入形式】
1.7 0.1
【输出形式】
cos(x) = -0.09700
#include
using namespace std;
int main()
{
double x,mi,jc=1,g,sshu,sum=0,h=2;
cin>>x>>g;
for(int i=0;;i=i+2)
{
mi = pow(x,i);
for(double j=1;j<=i;j++)
{
jc=jc*j;
}
sshu=mi/jc;
jc=1;
if((fabs(sshu))<(g))break;
sum=pow(-1,h)*(sshu)+sum;
h++;
}
cout<<"cos(x)="<
(1)灵活运用for循环(遇到break;跳出for循环)
for(int i=0;;i=i+2) // 遇到break;跳出循环
(2)绝对值函数
fabs();
(3)变号
int n=2;
pow(-1,h);
h++;
.阶乘末尾0的个数
【问题描述】
输入正整数n(2 【输入形式】 5 【输出形式】 1 【输入形式】 25 【输出形式】 6 /* n! = 1 * 2 * 3 * … * n 其中每个乘数可以分解为质因子的积,如4=2*2,15=3*5。 由此上式可以写成若干个质数的积,而在所有质数中,只有2*5=10,最终结果末尾会多加一个0。 而2出现的频率显然高于5出现的频率,所以,我们可以找到从1~n的每个数中,5作为因子的个数。 如15中包含一个5,最终结果里末尾0的个数加1,25包含2个5,最终结果里末尾0的个数加2。 */ 【问题描述】 输入正整数n(2 【输入形式】 5 【输出形式】 12 【输入形式】 7 【输出形式】 04 【问题描述】 输入一个正整数n(0 【输入形式】 3 【输出形式】 (1)递减空格 递减时for循环中第一个条件为初始值(比较小),第二个条件为递减值,第三个条件x++ 递增时for循环中第一个条件为初始值(比较小),第二个条件为递增值 ,第三个条件x++,x--时相反 (2)充分运用ascll码 (3)还有一种方法,就是将A---Z 26个字母储存在数组中,然后输出。 打印右字母三角形 【问题描述】 输入一个正整数n(0 【输入形式】 3 【输出形式】 前几题不会太难,主要在于理解,写代码前分析清楚,思路找明白很重要。代码:
#include
本题主要在于理解,代码很简单的 :
第二题变式:
阶乘的尾数
代码:
#include
本题也是注意理解,代码很简单,理解题目非常重要
第三题:
打印右字母三角形
代码:
#include
本题主要知识点:
for(j = 0; j < n - i - 1; j ++)
printf(" ");
char c = 'A';
c = 'A';
for(j = 0; j <= i; j ++)
printf("%c", c+j);
第三题变式:
代码:
#include
上半张试卷总结: