Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 20161027泰勒sin cos.cpp : 定義主控台應用程式的進入點。
- //
- #include "stdio.h"
- #include<stdlib.h>
- #include<ctype.h>
- #include<math.h>
- double fsin(double,double);
- float fcos(float, float);
- int main()
- {
- char a[4];
- double angle, n;
- while (scanf("%s", a)!= EOF)
- {
- int pn = 1;
- scanf("%lf %lf", &angle, &n);
- int i = 0;
- while (a[i] != '\0')//to小字母
- {
- a[i] = tolower(a[i]);
- i++;
- }
- while (angle >180 || angle < 0)//角度轉換
- {
- if (angle >= 360)angle -= 360;
- if (angle <0)angle += 360;
- if (angle <= 360 && angle > 180)
- {
- angle -= 180;
- pn = -1;
- }
- }
- angle = angle*3.14 / 180;
- if (!strcmp(a, "sin"))
- {
- double ans = fsin(angle, n);
- printf("%.6lf\n",pn*ans);
- }
- else if (!strcmp(a, "cos"))
- {
- float ans = fcos(angle, n);
- printf("%.6f\n", pn*ans);
- }
- else
- {
- puts("Input Error.");
- }
- }
- }
- double fsin(double angle, double n)
- {
- if (n == -1)return 0;
- double div = 1;
- for (int i = 1; i <= 2 * n + 1; i++)
- div *= i;
- double sum = pow(-1,n)*pow(angle, 2 * n + 1) /div;
- return (sum + fsin(angle,--n));
- }
- float fcos(float angle, float n)
- {
- if (n == -1)return 0;
- float div = 1;
- for (int i = 1; i <= 2 * n; i++)
- {
- div *= i;
- }
- double sum = pow(-1, n)*pow(angle, 2 * n) / div;
- return sum + fcos(angle, --n);
- }
Advertisement
Add Comment
Please, Sign In to add comment