(c语言)和与积的运算第四篇
生活随笔
收集整理的這篇文章主要介紹了
(c语言)和与积的运算第四篇
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解不等式第一篇
平方根不等式
對指定的整數n,試求滿足以下平方根不等式的正整數m:
vm+√m+1+…+√2m≥n
1.程序設計要點
顯然不等式左邊是m的増函數,因而對于指定的正數n設置m循環,m從1開始遞增1取值對每一個m求和:
s(m)=√m+√m+1+…+√2m
若s<m,m增1后繼續按上式求和判別,直至s=n時輸出不等式的解。
代碼:
#include <stdio.h> #include <math.h>int main() {int m;double s, n;scanf("%lf", &n);m = 0;while (1) {m++;s = 0.0;for (int i = 1; i <= 2 * m; i++) {s += sqrt(i);}if (s >= n)break;}printf("%d\n", m);return 0; }2.應用遞推設計求解
事實上,可以建立s(m)與(m1)之間的遞推關系,應用遞推簡化求解平方根不等式。
對于m1與m,累加和s(m-1)與s(m)顯然滿足如下遞推關系
s(m)=s(m-1)-√m-1+√2m-1+√2m
初始條件:s(1)=1+√2
因此,前面程序設計中的雙重循環可簡化為單循環,(程序效率得以大大提高。
代碼:
#include <stdio.h> #include <math.h>int main() {int m;double s, n, s1;scanf("%d", &n);m = 1;s = 1.0 + sqrt(2);do {m++;s1 = s; //用s1記錄ss = s + sqrt(m - 1) + sqrt(2 * m - 1) + sqrt(2 * m); //} while (s < n);printf("%d\n", m);return 0; }總結
以上是生活随笔為你收集整理的(c语言)和与积的运算第四篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (c语言)和与积的运算第三篇
- 下一篇: 地图处理(dfs算法)