- 编写一个函数,将华氏温度(f)转化成摄氏温度(c),转换公式为:c=(5/9)(f-32)。
//
// Created by imbytecat on 2020/5/18.
// 编写一个函数,将华氏温度(f)转化成摄氏温度(c),转换公式为:c=(5/9)(f-32)。
//
#include <iostream>
using namespace std;
int main() {
double degreeF;
double degreeC;
printf("输入华氏温度:");
cin >> degreeF;
degreeC = 5 * (degreeF - 32) / 9;
cout << "摄氏温度:" << degreeC << endl;
return 0;
}
- 斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*)。请用递归函数计算斐波那契数列第 n 项的值。
//
// Created by imbytecat on 2020/5/18.
// 斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……
// 在数学上,斐波纳契数列以如下递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*)。
// 请用递归函数计算斐波那契数列第 n 项的值。
//
#include <cstdio>
int Fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
int main() {
int n;
printf("please input n: ");
scanf("%d", &n);
printf("Result: %d\n", Fibonacci(n));
return 0;
}
- 利用重载函数编写一个程序,用来求两个整数或三个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入三个整数,程序就输出这三个整数中的最大数。
//
// Created by imbytecat on 2020/5/18.
// 利用重载函数编写一个程序,用来求两个整数或三个整数中的最大数。
// 如果输入两个整数,程序就输出这两个整数中的最大数;如果输入三个整数,程序就输出这三个整数中的最大数。
//
#include <cstdio>
int getMax(int a, int b) {
return a > b ? a : b;
}
int getMax(int a, int b, int c) {
return getMax(a, b) > c ? getMax(a, b) : c;
}
int main() {
int a, b, c;
printf("你想比较几个数字(2 或 3):");
scanf("%d", &a);
if (a == 2) {
printf("请输入第一个数字:");
scanf("%d", &a);
printf("请输入第二个数字:");
scanf("%d", &b);
printf("两个数字中最大的数字是:%d\n", getMax(a, b));
} else if (a == 3) {
printf("请输入第一个数字:");
scanf("%d", &a);
printf("请输入第二个数字:");
scanf("%d", &b);
printf("请输入第三个数字:");
scanf("%d", &c);
printf("三个数字中最大的数字是:%d\n", getMax(a, b, c));
}
return 0;
}
- 用冒泡法对 5 个数进行由小到大排序,排序功能请在自定义函数中实现。
//
// Created by imbytecat on 2020/5/18.
// 用冒泡法对 5 个数进行由小到大排序,排序功能请在自定义函数中实现。
//
#include <cstdio>
#define N 5
// n 为数组 a 的元素个数
void getBubbleSort(int a[], int n) {
// 最多进行 N-1 轮比较
for (int i = 0; i < n - 1; i++) {
bool isSorted = true;
// 每一轮比较前 n-1-i 个,即已排序好的最后 i 个不用比较
for (int j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
isSorted = false;
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
// 如果没有发生交换,说明数组已经排序好了
if (isSorted) break;
}
}
int main() {
int num[N] = {11, 22, 33, 44, 55};
getBubbleSort(num, N);
for (int i : num) {
printf("%d ", i);
}
return 0;
}
- 定义一个函数,实现用筛选法输出 1-100 之间的所有素数。
//
// Created by imbytecat on 2020/5/18.
// 定义一个函数,实现用筛选法输出 1-100 之间的所有素数。
//
#include <cstdio>
#include <cmath>
int main() {
int i, j, n, a[101];
// 初始化操作,给数组元素赋初值
for (i = 1; i <= 100; i++)
a[i] = i;
// a[1] 的值为 1,1 不为素数(定义判断),先将其排除
a[1] = 0;
// 判断 2-100 内的元素是否为素数
for (i = 2; i < sqrt(100); i++) {
// 用 i 循环除以之后的元素,如果整除则该数不为素数,否则该数为素数
for (j = i + 1; j <= 100; j++) {
if (a[i] != 0 && a[j] != 0) {
// 用 i 除以 i 之后的所有元素(j=i+1),这些操作仅仅需要对半操作,不需要进行若干次循环比较
if (a[j] % a[i] == 0) {
// 为素数将该数组的元素值设为 0
a[j] = 0;
}
}
}
}
// 从 2 开始是因为数组中第一个元素 arr[0] 没有值,第二个元素为 0 所以直接从 3 开始(数组索引从 0 开始)
for (i = 2, n = 0; i <= 100; i++) {
if (a[i] != 0) {
printf("%d ", a[i]);
n++;
}
}
return 0;
}
本文由 imbytecat 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: May 18, 2020 at 05:01 pm