January 2nd, 2012 01] 旧题新做
在家里待着就是容易犯懒,8点多就想睡觉,然后一睡睡到第二天的早上。饭点的时候各种消遣活动。这种状态可不是什么好事。虽然答应了昨晚开始学习,但又是睡了过去。但绝不是今天!
把老早前找实习时收到的一份网上题目搜了出来,重新做了一遍,总结一下,对,就是总结给你看的!
Q1: Find Greatest Common Divisor.
当时给题目时,算法描述也一块带了过来,挺奇怪的,就是实现?
Algorithm:
欧几里得算法
分析:求最大公约数的算法思想:
(1) 对于已知两数m,n,使得m>n;
(2) m除以n得余数r;
(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);
(4) m←n,n←r,再重复执行(2)。
例如: 求 m=14 ,n=6 的最大公约数. m n r
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <iostream> using namespace std; int gcd(int m, int n) { if(0 == m) return n; if(0 == n) return m; if(m<n) { int temp = m; m = n; n = temp; } while(0!= n) { int rem = m%n; m = n; n = rem; } return m; } int main(int argc, const char* argv[]) { if(argc < 3) { cout << "Usage: ./gcd <num1> <num2>" << endl; return 0; } int m = (int)strtoul(argv[1], 0, 0); int n = (int)strtoul(argv[2], 0, 0); cout << "Gcd of " << m << " and " << n << " are: " << gcd(m, n) << endl; return 0; } |
Q2: Linux 基础命令(悔不当初啊)
1.列出当前目录所有.log文件
1 | ls *.log |
2.查找home目录下,所有log文件含有abc字符串的文件
1 | find /home -name “*.log” | xargs grep “abc” |
3.查找在系统中最后10分钟访问的文件
1 | find / -amin -10 |
Linux 下find 命令的使用
4.查找在系统中属于FRED这个用户的文件
1 | find / -user FRED |
5.一个文件格式如下,写一个脚本统计其所有重复行的行数
abc
hjg
bcd
abc
bcd
kkk
输出结果示例:
2 abc
2 bcd
1 hjg
1 kkk
1 | sort file | uniq -c |
6.显示输出没有字符“48”所有的行
1 | grep -v “48” file |
7.去掉一个文件内所有重复的行
1 | sort file.txt | uniq -u |
Related posts:
Posted in The kite runner | Comments (1)
January 2nd, 2012 at 12:36
啰嗦!