lil_SV

Untitled

Oct 8th, 2021
695
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. // косметические функции для упращения понимания кода
  5. double f1(int k);
  6. double f2(int k);
  7.  
  8. // Хотя с точки производительности код:
  9. // #define f1(k) 1((double)k*k)
  10. // производительнее, но #define это bad practic
  11.  
  12. int main(){
  13.     double x, ans=0; // создание переменных x и answer
  14.     int k,n; // создание целочисленных переменных k и n
  15.     scanf("%d%lf",&n,&x); // инициализация переменных n и x
  16.     // План работы таков: разбить формулу на 3 части и считать ее частями
  17.     ans+=3*x; // 1 часть формулы
  18.     double s=0; // создание вещественной переменной для хранения суммы
  19.     for(k=1;k<=n;++k){
  20.         ans+=f1(k); // считаем и сразу записываем в ответ
  21.     }
  22.     for(k=1;k<=n;++k){
  23.         s+=f2(k); // считаем 2 сумму
  24.     }
  25.     s*=s; // возводим ее в квадрат
  26.     ans+=s; // добавляем 3 часть уравнения в ответ
  27.     printf("%lf\n",ans); // выводим ответ
  28.     return 0; // возвращаем код ошибки
  29. }
  30.  
  31. double f1(int k){
  32.     return 1/((double)k*k);
  33. }
  34. double f2(int k){
  35.     return (1/k)*(pow(-1,k+1));
  36. }
  37.  
  38.  
  39.  
  40.  
  41. #include<stdio.h>
  42. #include<math.h>
  43.  
  44. int main(){
  45.     int x,m,n;
  46.     scanf("%d%d%d",&x,&m,&n);
  47.     double ans=0;
  48.     for(int j=1;j<=n;++j){
  49.         double buf1=0, buf2=0;
  50.         buf1+=j*x;
  51.         for(int k=1;k<=m;++k){
  52.             buf1+=k/((double)j)+j/((double)k);
  53.         }
  54.         for(int i=1;i<=m;++i){
  55.             buf2+=1/((double)i);
  56.         }
  57.         buf2*=x;
  58.         buf2+=2*j;
  59.         ans+=buf1/buf2;
  60.     }
  61.     printf("%lf\n",ans);
  62.     return 0;
  63. }
  64.  
RAW Paste Data