随笔分类 - [21]数据结构
摘要:1.String/ArraytoCharArray() //get char array of a StringArrays.sort() //sort an arrayArrays.toString(char[] a) //convert to stringcharAt(int x) //get a char at the specific indexlength() //string lengthlength //array size substring(int beginIndex) substring(int beginIndex, int endIndex)Integer.valu.
阅读全文
摘要:好的算法的一个准则是用于执行算法的时间长度。这可以借助于执行每个步骤的次数来表示。我们通常面对着同一个问题的若干个算法,因此我们必须判断哪一个最好。这就是算法分析这个有趣和重要的领域要研究的了。
阅读全文
摘要:排序与检索数据处理是计算机的强项,包括排序、检索和统计等。6174问题假设你有一个各位数字互不相同的四位数,把所有数字从大到小排序后得到a,从小到大排序后得到b,然后a-b替换原来这个数,最终都会得到6174。例如,从1234出发,依次可以得到4321-1234=3087,8730-378=8352,8532-2358=6174。有趣的是,7641-1467=6174回到了它自己。输入一个n位数,输出操作序列,直到出现循环。样例输入:1234样例输出:1234->3087->8352->6174->6174分析:两个问题摆在我们面前:如何得到下一个数?如何检查这个数是否
阅读全文
摘要:基础题之字符串题目:把手放在键盘上,稍不注意就会往右错一位。Q会变成W,J会变成K。输入一个错位后敲出的字符串,输出打字员本来想打出的句子。分析:如何进行这样的变换呢?一种方法是使用if语句或者switch语句,如if(c==‘W’)putchar(‘Q’)。但很明显,这样做太麻烦。一个较好的方法是使用常量数组。题目:TeX括号在TeX中,左双引号是“,右双引号是”,输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式。样例输入:"To be or not to be,"quoth the Bard,"that is the question".样
阅读全文
摘要:函数与递归简单函数的编写如果函数在执行的过程中碰到了return语句,将直接退出这个函数,不去执行后面的语句。题一:组合数输入非负整数n和m,输出组合数Cmn=n!/m!(n-m)!,其中m #include#includeint f(int n){ int i,m = 1; for(i = 1;i #include#includeint is_prime(int x){ int i; for(i = 2;i*i=3;i--){ if(is_prime(i)&&is_prime(i+2)){ printf("%d %d\n",i,i+2); break; }
阅读全文
摘要:递归1.阶乘f(n) = n!2.公式f(0) = 1;f(n) = f(n-1)*n (n>=1)3.代码对应的程序为#include #include#includeint f(int n){ return n == 0?1:f(n-1)*n;}int main(){ printf("%d\n",f(3)); getch(); return 0;}自己调用自己就是递归,但是要有一个出口,让程序走出递归。在C语言中,调用自己和调用其他函数并没有任何本质区别,都是建立新栈帧。4.比喻皇帝(拥有main函数的栈帧):大臣,你给我算一下f(3)。大臣(拥有f(3)的栈帧)
阅读全文
摘要:数组和字符串逆序输出考虑问题:读入一些整数,逆序输出到一行中。已知整数不超过100个。我们把每个数都存下来,存放到哪里呢?答案是:数组。#include #include#define MAXN 100+10int a[MAXN];int main(){ int i,x,n=0; while(scanf("%d",&x)==1){//一直输出 a[n++] = x; } for(i = n-1;i>=1;i--){ printf("%d ",a[i]); } printf("%d\n",a[0]); getch(); r
阅读全文
摘要:输入一个10的9次方的正整数,输出它的位数。例如输入123,的位数为3。#include #includeusing namespace std;int main(){ int n,count=1; cin>>n;//输入n while(n/10>=1){ n = n/10; //cout#includeusing namespace std;int main(){//cout.precision(2); int n,a,b,c; for(n=100;n#includeusing namespace std;int main(){//cout....
阅读全文
摘要:for循环打印1,2,3,...,n每个占一行。#include #includeint main(){ int i,n; scanf("%d",&n); for(i=1;i#include#includeint main(){ int a,b,n; double m; for(a=1;a#include#includeint main(){ int x,n,high,low; for(x = 1;;x++){ n = x*x; if(n9999) break;//结束本次循环,这一句很重要 high = n / 1...
阅读全文
摘要:1.求三个数的平均数,要求保留三位小数位#include #includeint main(){ int a,b,c; float aver; scanf("%d%d%d",&a,&b,&c); aver = (a+b+c)/3.0;//整数除以小数,才会变为小数 printf("%.3lf\n",aver); getch(); return 0;}2.根据华氏温度f,获取摄氏温度c,保留3位小数。提示:c=5(f-32)/9。#include #includeint main(){ float f,c; scanf("
阅读全文
摘要:鸡兔同笼问题已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出“No answer”。分析:设鸡有a只,兔有b只,则a+b = n,2a+4b = m,联立解得a = (4n-m)/2,b = n - a。如果a和b不是整数,或者a和b有负数,就算错误。程序如下:#include #includeint main(){ int a,b,n,m; scanf("%d%d",&n,&m); a = (4*n-m)/2; b = n-a; if(m%2 == 1||a#includeint main(){ int a,b,
阅读全文
摘要:套路:读入数据计算结果打印输出案例一题目:输入一个三位数,分离出它的百位、十位和个位,反转后输出。样例输入:127样例输出:721分析:首先将三位数读入变量n,然后进行分离。百位等于n/100,十位等于n/10%10(这里的%是取余数操作),个位等于n%10。程序如下:#include #includeint main(){ int n; scanf("%d",&n); printf("%d%d%d\n",n%10,n/10%10,n/100); getch(); return 0;}继续改造,#include #includeint main(
阅读全文
摘要:算法学习,先熟悉一下C语言哈!!!#include #includeint main(){ printf("%d\n",1+2); getch(); return 0;}计算1+2的值结果:3进一步计算加减乘除#include #includeint main(){ printf("%d\n",1+2); printf("%d\n",3-4); printf("%d\n",5*6); printf("%d\n",8/4); printf("%d\n",8/5); getch(
阅读全文