C语言课后习题代码
C語(yǔ)言復(fù)習(xí)01——課后習(xí)題代碼練習(xí)(小部分有價(jià)值的)
第五章
3??????????
輾轉(zhuǎn)相處求最大公因數(shù),最小公倍數(shù)
#include<stdio.h>int main() {int n, m,r;int t;printf("請(qǐng)輸入兩個(gè)正整數(shù):\n");scanf_s("%d%d", &n, &m);if (n < m) {t = n;n = m;m = t;}int p = n * m;while (m!=0){r =n%m;n = m;m = r;}printf("最小公倍數(shù):%d\n", n);printf("最大公因數(shù):%d", p/n); }注意點(diǎn):
輾轉(zhuǎn)想相除的算法思路
9 ??????
求出1000以內(nèi)的“完數(shù)”:因子之和為本身
例如:6的完數(shù)是1,2,3
要求輸出 :
6 its factors are 1,2,3
#include<stdio.h> int main() {int sum;for (int i = 2; i < 1001; i++) {sum = 0;for (int j = 1; j < i; j++) {if (i % j == 0) sum += j;}if (sum == i){printf("%d its factors are ",i);printf("1");for (int j = 2; j < i; j++) {if (i % j == 0) {printf(",%d", j);}} printf("\n");} } }注意點(diǎn):
1、如何在得出完數(shù)之后再把因子輸出來?
? 重新遍歷一遍
2、逗號(hào)分隔
3、層級(jí)關(guān)系
10??
求序列之和
#include<stdio.h>int main() {double i = 1, j = 2;int t;double sum =0;for (int n = 0; n <20; n++) {sum += j / i;t = i;i = j;j = j + t;}printf("%f", sum); }注意點(diǎn):
精度
11??
#include<stdio.h>int main() {double h=100, x=0;for (int i = 0; i < 10; i++) {if (i == 0) x = h;else x += 2 * h;h = h / 2;}printf("第十次落地時(shí)經(jīng)過%f米,第十次反彈%f米", x, h); }注意點(diǎn):
精度:設(shè)定的和輸出的。算法還好不是很難,仔細(xì)就行。
12??
猴子吃桃,每天吃當(dāng)前數(shù)量的一半加一個(gè),到第十天只有1個(gè),問一開始有多少個(gè)
#include<stdio.h>int main() {int n=1;for (int i = 0; i < 9; i++) {n = 2 * (n + 1);}printf("第一天摘了%d個(gè)", n); }注意點(diǎn):
迭代次數(shù)不要搞錯(cuò),第十天只有一個(gè),但第十天沒吃!
13????
迭代求開跟(以2為例)
#include<stdio.h>int main() {double x = 1.5;double t = 1;while (x-t>0.00005 ||x-t<-0.00005){t = x;x = (x + 2 / x) / 2;}printf("%f", x); }注意點(diǎn):
while里面的循環(huán)條件 ||,不要&&
總結(jié)
- 上一篇: rk3288 7.1 lvds屏幕亮度
- 下一篇: 【设计模式】-工厂模式->简单工厂模式(