Training1整数算法训练
2017-02-17 11:25
85 查看
Training1整数算法训练 | | |
| 1. 题目:通过编程实现,统计1~n有多少个9 提示:n通过参数传入 #include <stdio.h> int count(int n) { int i; int m; int temp; int k = 0; for(i = 9; i <= n; i++) { temp = i; while(temp) { m = temp % 10; temp /= 10; if(m == 9) { k++; } } } return k; } int main() { int n; int cnt; printf("enter n: \n"); scanf("%d", &n); cnt = count(n); printf("1-%d has %d 9\n", n, cnt); return 0; } | |
| 2. 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成 #include <stdio.h> int fun(int n) { int i; int tmp; int out = 0; int num = 0; int a[100] = {0}; for(i = 0; i < n; i++) { a[i] = 1; } i = 0; while(out != n - 1) { if(a[i] == 1) { num++; } if(num == 3) { a[i] = 0; num = 0; out++; } i++; if(i == n) { i = 0; } } for(i = 0; i < n; i++) { if(a[i] == 1) { tmp = i + 1; } } return tmp; } int main() { int n; int last; printf("enter the number of people:\n"); scanf("%d", &n); last = fun(n); printf("the last people is %d\n", last); return 0; } | |
| 3. 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1 5 7 #include <stdio.h> int rank(double *b, int n) { int i, j; int temp; for(i = 0; i < n; i++) { for(j = i + 1; j < n; j++) { if(*(b + i) > *(b + j)) { temp = *(b + i); *(b + i) = *(b + j); *(b + j) = temp; } } } } int main() { double a[20]; int i = 0; int j = 0; char ch = 0; printf("enter 20 numbers:\n"); while(ch != '\n') { scanf("%lf", a + i); i++; ch = getchar(); } rank(a, i); for(j = 0; j < i; j++) { printf("%lf", a[j]); } printf("\n"); return 0; } | |
| 4. 题目:求100以内的素数,全部打印出来#include <stdio.h> #include <math.h> void prime(int n) { int i, j, flag; int m = 0; for(i = 1; i <= n; i++) { flag = 0; for(j = 2; j <= sqrt(i); j++) { if(i % j == 0) { flag = 1; } } if(flag == 0) { printf("%5d", i); m++; if(m % 5 == 0) { printf("\n"); } } } } int main() { int n = 100; printf("the prime numbers between 1-100 are:\n" ); prime(n); printf("\n"); return 0; } | |
| 5. 题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数 #include <stdio.h> void perfect(int n) { int i, j; int k = 0; int temp = 1; for(i = 1; i <= n; i++) { for(j = 1; j < i; j++) { if(i % j == 0) { temp += j; } } if(temp == i) { printf("%5d", i); k++; if(k % 5 == 0) { printf("\n"); } } temp = 0; } } int main() { int n = 1000; printf("the perfect numbers between 1-1000 are:\n"); perfect(n); printf("\n"); return 0; } |
相关文章推荐
- 在命令行用 sort 进行排序
- 文件遍历排序函数
- 关于C#中排序函数的总结
- C#选择排序法实例分析
- C#插入法排序算法实例分析
- C#实现Datatable排序的方法
- MYSQL必知必会读书笔记第五章之排序检索数据
- jQuery利用sort对DOM元素进行排序操作
- SQLSERVER的排序问题结果不是想要的
- Ruby实现插入排序算法及进阶的二路插入排序代码示例
- Windows Powershell排序和分组管道结果
- C#通过IComparable实现ListT.sort()排序
- C#选择法排序实例分析
- SQL学习笔记四 聚合函数、排序方法
- C#对list列表进行随机排序的方法
- jQuery拖动元素并对元素进行重新排序
- 将MySQL查询结果按值排序的简要教程
- 深入解析桶排序算法及Node.js上JavaScript的代码实现
- 经典排序算法之冒泡排序(Bubble sort)代码
- 一根网线内的8根线哪4根是传输数据的,哪四根是防干扰的