城乡与住房建设部网站首页,影视制作公司简介,云和建设局网站,重庆网站建设求职简历思路 1. 求数组中最大最小值思路代码 2. 计算阶乘思路#xff1a;代码#xff1a; 3. 得到数字的每一位思路代码 4. 计算时间类型5. 最大公约数、最小公倍数6. 循环数组的思想题目#xff1a;猴子选大王代码 补充经典例题1. 复试四则运算题目内容题解 2. 数列求和题目内容题… 思路 1. 求数组中最大最小值思路代码 2. 计算阶乘思路代码 3. 得到数字的每一位思路代码 4. 计算时间类型5. 最大公约数、最小公倍数6. 循环数组的思想题目猴子选大王代码 补充经典例题1. 复试四则运算题目内容题解 2. 数列求和题目内容题解 1. 求数组中最大最小值
思路
把数组中下标为0的值先设置为最大(最小值)然后遍历数组如果比它大(小)就更新。
代码
ElementType Max( ElementType S[], int N )
{ElementType maxNumS[0];for(int i 1;iN;i)if(maxNumS[i])maxNumS[i];return maxNum;
}2. 计算阶乘
思路
使用递归把大问题分解为小问题
代码
int Factorial(int n){if(n0)return 1;return n*Factorial(n-1);
}3. 得到数字的每一位
思路
通过不断的模以10然后再除以10不断循环可以把得到每一位存放到数组里面(灵活处理)。
代码
// 一种表达
while(number){array[number%10]; //使用辅助数组记录每个位出现的次数number/10;}// 存放每一位在数组中
while(number){array[i]number%10; //使用辅助数组记录每位number/10;}// 判断某一位出现了几次while(number){if(number%10D)count;number/10;}4. 计算时间类型
思路可以统一转为分钟之后统一处理。
timehour*60mintue5. 最大公约数、最小公倍数 // 最大公约数
int gcd(int a,int b){if(b 0)return a;return gcd(b,a%b);
}// 最小公倍数
int lcm(int a, int b) {return (a * b) / gcd(a, b);
}6. 循环数组的思想
题目猴子选大王
一群猴子要选新猴王。新猴王的选择方法是让N只候选猴子围成一圈从某位置起顺序编号为1~N号。从第1号开始报数每轮从1报到3凡报到3的猴子即退出圈子接着又从紧邻的下一只猴子开始同样的报数。如此不断循环最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王
代码
#define _CRT_SECURE_NO_WARNINGS
#includestdio.hint main() {int i, N, arr[1000] {0}, count0;scanf(%d, N);// 存入数组for (i 0; i N; i)arr[i] i1;i 0;while (1) {if (arr[(i N) % N] ! 0) {count;}if (count % 3 0)arr[(i N) % N] 0;if (count 3 * N-2) {printf(%d, arr[(i N) % N]);break;}i;}return 0;
}补充
经典例题
1. 复试四则运算
题目内容
本题要求编写程序计算2个复数的和、差、积、商。
输入格式 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1a1b1i和C2a2b2i的实部和虚部。题目保证C2不为0。
输出格式 分别在4行中按照(a1b1i) 运算符 (a2b2i) 结果的格式顺序输出2个复数的和、差、积、商数字精确到小数点后1位。如果结果的实部或者虚部为0则不输出。如果结果为0则输出0.0。
题解
#define _CRT_SECURE_NO_WARNINGS
#includestdio.h
#includemath.hint main() {double a1, b1, a2, b2, a[4], b[4];char c[4] { ,-,*,/ };scanf(%lf %lf %lf %lf, a1, b1, a2, b2);a[0] a1 a2; b[0] b1 b2;a[1] a1 - a2; b[1] b1 - b2;a[2] a1 * a2 - b1 * b2; b[2] b1 * a2 b2 * a1;a[3] (a1 * a2 b1 * b2) / (pow(a2, 2) pow(b2, 2));b[3] (b1 * a2 - a1 * b2) / (pow(a2, 2) pow(b2, 2));for (int i 0; i 4; i) {if (fabs(a[i]) 0.05 fabs(b[i]) 0.05) {printf((%.1lf%.1lfi) %c (%.1lf%.1lfi) %.1lf%.1lfi, a1, b1,c[i], a2, b2, a[i], b[i]);}else if (fabs(b[i]) 0.05) {printf((%.1lf%.1lfi) %c (%.1lf%.1lfi) %.1lfi, a1, b1, c[i], a2, b2, b[i]);}else if (fabs(a[i]) 0.05) {printf((%.1lf%.1lfi) %c (%.1lf%.1lfi) %.1lf, a1, b1,c[i], a2, b2, a[i]);}else {printf((%.1lf%.1lfi) %c (%.1lf%.1lfi) %.1lf, a1, b1, c[i],a2, b2, 0);}if(i!3)printf(\n);}return 0;
}2. 数列求和
题目内容
给定某数字A1≤A≤9以及非负整数N0≤N≤100000求数列之和SAAAAAA⋯AA⋯AN个A。例如A1, N3时S111111123。
输入格式 输入数字A与非负整数N。
输出格式 输出其N项数列之和S的值。
题解
#define _CRT_SECURE_NO_WARNINGS
#include stdio.h
#includemath.hint main() {double sum 0, item 0;int A, N;scanf(%d %d,A,N);for (int i 0; i N; i) {// 和之前的每一项计算不太一样item A * pow(10, i);sum item;}printf(%.lf, sum);return 0;
}