来自网络,联系侵删
42 字
1 分钟
【课堂代码】函数1
1. 定义一个函数求阶乘n!
#include<iostream>
int Fack(int n){ int i,sum=1; for(i=1;i<=n;i++) { sum*=i; } return sum;}int main(){ int n; std::cin>>n; std::cout<<Fack(n)<<std::endl; return 0;}
2. 计算组合数
#include <iostream>void zuheshu(int m, int k, long long &ret)
int main() { int m, k; long long ret; std::cin >> m >> k; zuheshu(m, k, ret); std::cout << ret << std::endl; return 0;}#include<iostream>
void zuheshu(int m, int k, long long &ret) // C++引用{ if (k < 0 || k > m) { ret = 0; return; } if (k > m - k) k = m - k; long long result = 1; for (int i = 1; i <= k; ++i) { result = result * (m - k + i) / i; //通过组合数公式求解,避免算阶乘溢出 } ret = result;}3. 计算两点间的距离
#include<stdio.h>#include<math.h>double dist(double x1, double y1, double x2, double y2);
int main(void){ double x1, y1, x2, y2; printf("Enter x1,y1,x2, y2:"); scanf("%lf %lf %lf %lf", &x1, &y1,&x2,&y2); printf("dist=%.2f\n", dist(x1,y1,x2,y2));
return 0;}
double dist(double x1, double y1, double x2, double y2){ return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}4. 输出数字金字塔
#include<iostream>
void pyramid (int n);
int main(){ int n; std::cin>>n; pyramid(n); return 0;}
void pyramid(int n) { for (int i = 1; i <= n; ++i) { // 输出前导空格,使金字塔居中 for(int j = 0;j<n-i;j++) std::cout<<" "; // 输出 i 重复 i 次,中间用空格分隔 for (int k = 1; k <= i; ++k) { std::cout << i; if (k < i) std::cout << " "; // 数字之间加空格 } std::cout << std::endl; }}5. 天天向上的力量
#include<iostream>
void daily(double &study, double &relax) { //计算每天努力和每天放任 study = pow(1.01,365); // 每天努力 1% relax = pow(0.99,365); // 每天放任 1%}
void weekdays(double &result) { //计算工作日努力,周末放任 double val = 1.0; for (int day = 0; day < 365; ++day) { if (day % 7 < 5) // 工作日努力 val *= 1.01; else // 周末放任 val *= 0.99; } result = val;}
double find_required_rate() {/* 每周工作5天,休息2天,休息日水平下降1%,工作日要努力到什么程度, 一年后的水平才与每天努力1%取得的效果一样呢?*/ double target = pow(1.01, 365); double low = 0.0, high = 0.1; for (int i = 0; i < 100; ++i) { double mid = (low + high) / 2; // 二分法查找 double val = 1.0; for (int day = 0; day < 365; ++day) { if (day % 7 < 5) // 工作日 val *= (1.0 + mid); else // 休息日 val *= 0.99; } if (val < target) low = mid; else high = mid; } return (low + high) / 2;}
int main(){ double dailystudy,dailyrelax,weekdaystudy,result;
daily(dailystudy,dailyrelax); weekdays(weekdaystudy);
result = find_required_rate();
//std::cout << std::fixed << std::setprecision(2); // 调用#include <iomanip>取两位小数 std::cout << "365天,每天学习" << dailystudy << std::endl; std::cout << "365天,每天放任" << dailyrelax << std::endl; std::cout << "365天,工作日学习,周末放任" << weekdaystudy << std::endl; std::cout << "每周工作5天,休息2天,休息日水平下降1%,工作日要努力到" << result*100 << "%,一年后的水平才与每天努力1%取得的效果一样" << std::endl; return 0;
} 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐



























