钦州做网站,成都网站建设重庆最加科技,附近设计公司有哪些,电商网站开发数据库表目录 T1. 数字放大思路分析 T2. 统一文件名思路分析 T3. 内部元素之和思路分析 T4. 整数排序思路分析 T5. 计算好数思路分析 T1. 数字放大
给定一个整数序列以及放大倍数 x x x#xff0c;将序列中每个整数放大 x x x 倍后输出。
时间限制#xff1a;1 s 内存限制#x… 目录 T1. 数字放大思路分析 T2. 统一文件名思路分析 T3. 内部元素之和思路分析 T4. 整数排序思路分析 T5. 计算好数思路分析 T1. 数字放大
给定一个整数序列以及放大倍数 x x x将序列中每个整数放大 x x x 倍后输出。
时间限制1 s 内存限制64 MB
输入 包含三行 第一行为 n n n表示整数序列的长度 n ≤ 100 n ≤ 100 n≤100 第二行为 n n n 个整数不超过整型范围整数之间以一个空格分开 第三行包含一个整数不超过整型范围为指定的整数 x x x。输出 n n n 个整数为原序列放大之后的序列整数之间以一个空格分开。样例输入3
1 5 7
2样例输出2 10 14提示 注意答案的数据范围。
思路分析
此题考察一维数组的遍历操作属于入门题。
此题只需要将整数序列存储起来输入 x x x 之后依次遍历数组中的每个元素将其乘以 x x x 之后输出即可注意需要用 long long 类型。
/* * NameT1.cpp* Problem数字放大* AuthorTeacher Gao.* DateTime2024/6/15 06:41*/#include iostreamusing namespace std;int main()
{long long n, a[100], x;cin n;for (int i 1; i n; i) {cin a[i];}cin x;for (int i 1; i n; i) {cout a[i] * x ;}return 0;
}T2. 统一文件名
小 A A A 在命名文件的时候经常不注意大小写格式比较混乱。现要求你写一个程序将目录下的文件统一规范的格式即文件名的第一个字符如果是字母要大写其他字母小写。如将 Test \text{Test} Test、 test \text{test} test 整理成 Test \text{Test} Test。
时间限制1 s 内存限制64 MB
输入 第一行一个数字 n n n表示有 n n n 个文件名要统一 n n n 不超过 100 100 100。 接下来 n n n 行每行一个单词长度不超过 20 20 20表示文件的名字。文件名由字母、数字和 - 组成。输出 n n n 行每行一个单词对应统一后的文件名。样例输入4
Test
data
2-TEST
problem-6样例输出Test
Data
2-test
Problem-6思路分析
此题考查字符的修改操作属于入门题。
此题只需要将输入的 n n n 个字符串的首字母改为大写字母然后输出即可。可以采用 if 语句进行判定若输入字符串的首字母为小写字母则将其修改为对应的大写字母之后输出。也可以采用 toupper 函数实现该函数的功能是将小写字母改为大写字母若参数不是小写字母则不做任何修改。
/** Name: T2.cpp* Problem: 统一文件名* Author: Teacher Gao.* DateTime: 2024/09/15 14:29*/#include iostream
#include stringusing namespace std;int main()
{int n;string s;cin n;for (int i 1; i n; i) {cin s;s[0] toupper(s[0]);cout s endl;}return 0;
}T3. 内部元素之和
输入一个整数矩阵计算位于矩阵内部的元素之和。所谓矩阵内部的元素不在第一行和最后一行的元素以及第一列和最后一列的元素。
时间限制1 s 内存限制64 MB
输入 第一行分别为矩阵的行数 m m m 和列数 n n n m 100 m 100 m100 n 100 n 100 n100两者之间以一个空格分开。 接下来输入的 m m m 行数据中每行包含 n n n 个整数每个数大于等于 0 0 0小于 1000 1000 1000整数之间以一个空格分开。输出 输出对应矩阵的内部元素和。样例输入3 3
3 4 1
3 7 1
2 0 1样例输出7思路分析
此题考查二维数组的遍历操作属于入门题。
此题只需要注意统计输入的二维数组中的元素和时判定当前元素是否属于内部元素若是内部元素则进行累加即可。也可以在输入之后另外写一个双重循环嵌套调整循环起点和终点免去判断是否为内部元素的麻烦。以上两种方法较为简单请读者自行实现。
第三种方法不使用二维数组而是利用二维数组按行输入的特征将二维下标转换到一维下标进行判断。二维下标 ( i , j ) (i, j) (i,j) 转换到一维下标 k k k 的转换公式为 $k (i - 1) * n j于是第一行满足 1 ≤ k ≤ n 1 \le k \le n 1≤k≤n最后一行满足 ( m − 1 ) n 1 ≤ k ≤ m n (m - 1)n 1 \le k \le mn (m−1)n1≤k≤mn第一列满足 k % n 1 k \% n 1 k%n1最后一列满足 k % n 0 k \% n 0 k%n0。于是当 k k k 满足条件 n 1 ≤ k ≤ ( m − 1 ) n n 1 \le k \le (m-1)n n1≤k≤(m−1)n且 i % n ≥ 2 i \% n \ge 2 i%n≥2 时即为内部元素。
/** Name: T3.cpp* Problem: 内部元素之和* Author: Teacher Gao.* DateTime: 2024/09/15 14:49*/#include iostreamusing namespace std;int main()
{int m, n, x, sum 0;cin m n;for (int k 1; k m * n; k) {cin x;if (n k k (m-1)*n k % n 2) {sum x;}}cout sum endl;return 0;
}T4. 整数排序
给定 10 10 10 个整数的序列要求对其重新排序。排序要求
奇数在前偶数在后奇数按从大到小排序偶数按输入顺序逆序排序。
时间限制1 s 内存限制64 MB
输入 输入一行包含 10 10 10 个整数彼此以一个空格分开每个整数的范围是大于等于 0 0 0小于等于 100 100 100。输出 按照要求排序后输出一行包含排序后的 10 10 10 个整数数与数之间以一个空格分开。样例输入4 7 3 13 11 12 0 47 34 98样例输出47 13 11 7 3 98 34 0 12 4思路分析
此题考查排序算法难度一般。
此题较为简单的做法是将奇数和偶数分开两个数组存储对奇数数组做从大到小排序后输出然后对偶数数组进行逆序输出。请读者自行实现。
此题也可以使用结构体排序但是排序规则比较繁琐需要讨论两个关键字的奇偶性若同时为偶数还需要考虑其输入次序。简单起见可以将奇偶性属性也加入结构体成员并作为第一关键字进行比较。见示例代码。
/** Name: T4.cpp* Problem: 整数排序* Author: Teacher Gao.* DateTime: 2024/09/15 15:10*/#include iostream
#include algorithmusing namespace std;struct num {// info 为 1 表示奇数为 0 表示偶数int val, id, info;
}a[15];bool cmp(num x, num y) {if (x.info ! y.info) return x.info y.info;if (x.info 1) return x.val y.val;return x.id y.id;
}int main()
{for (int i 1; i 10; i) {cin a[i].val;a[i].id i;a[i].info a[i].val % 2;}sort(a 1, a 10 1, cmp);for (int i 1; i 10; i) {cout a[i].val ;}return 0;
}T5. 计算好数
若将一个正整数化为二进制数在此二进制数中我们将数字 1 1 1 的个数多于数字 0 0 0 的个数的这类二进制数称为好数。
例如 ( 13 ) 10 ( 1101 ) 2 (13)10 (1101)2 (13)10(1101)2其中 1 1 1 的个数为 3 3 3 0 0 0 的个数为 1 1 1则此数是好数 ( 10 ) 10 ( 1010 ) 2 (10)10 (1010)2 (10)10(1010)2其中 1 1 1 的个数为 2 2 2 0 0 0 的个数也为 2 2 2则此数不是好数 ( 24 ) 10 ( 11000 ) 2 (24)10 (11000)2 (24)10(11000)2其中 1 1 1 的个数为 2 2 2 0 0 0 的个数为 3 3 3则此数不是好数。
对于给定的 n n n写程序求出 1 ∼ n 1 \sim n 1∼n 之中包括 1 1 1 与 n n n中的好数个数。
时间限制1 s 内存限制64 MB
输入 一个整数题目中的 n n n n ≤ 1000 n ≤ 1000 n≤1000。输出 一个整数表示 1 ∼ n 1 \sim n 1∼n 之中包括 1 1 1 与 n n n中的好数个数。样例输入10样例输出5思路分析
此题主要考查进制转换即短除法难度一般。
短除法的实现可以用 while 语句注意在做短除法之前需要清空统计 1 1 1 和 0 0 0 数量的计数器变量。见示例代码。
/** Name: T5.cpp* Problem: 计算好数* Author: Teacher Gao.* DateTime: 2024/09/15 15:24*/#include iostreamusing namespace std;int main()
{int n, tot 0;cin n;for (int i 1; i n; i) {int tmp i, t1 0, t0 0;while (tmp) {if (tmp % 2) t1;else t0;tmp / 2;}if (t1 t0) tot;}cout tot endl;return 0;
}