我贴出我自己的设计程序时候的一些体会与心得。有些复杂的设计方案我会通过定时更新的方案去分享给大家
没有目录的组织,所以想到什么就写什么吧。
2013年7月18日11:18:18的编写
1.if与go to 语句可以用于循环,在java也支持goto loop的使用。
可以处理跳出多层循环的问题
2.动态监督条件
do while 与while ,前者可以通过动态的条件去监督该循环,循环次数不确定的循环监督
for用于次数确定与不确定的(需要加入循环内的if来判断监督条件break就可以处理)循环
3.循环的效率处理
多层循环中,有时候需要处理掉不必要的多余循环次数,需要直接跳出间隔循环
java语言中常用处理
方法一:
变量x//此处设置监督变量
for(){
if(处理监督变量){
break;
}
for(){
}
....
}
方法二:
loop; for()for()for(){
if()
goto loop;//break loop
}
loop之外可以存在其他循环
对于c/c++,都可以采用java的解决方案,java的方法二一般不建议使用。c设计算法要比java在处理程序设计的循环效率的方便的多。
4.处理业务流的结构化解决方案
第一步,自顶向下分析业务流程阶段
第二步:各阶段需要的输入与输出信息
第三步:各个阶段迭代设计出较好的算法来处理
子步骤:算法设计的流程,效率方面尽量不用循环,循环只处理重复的代码与计算。大数据的处理应该基于数据结构型的存储处理
第四步:业务流控制,测试各阶段接口是否存在引用错误
第五步:迭代设计业务算法与效率分析
--------------------------------------------------------------
2013年7月25日20:43:03
总结下这2天在oj上用c语言搞的成果与总结
2013年7月24日15:46:18
最大公约数:辗转相除法 i<j 余数不为零,则用上次的除数%本次余数.直到余数=0,此时除数为最大公约数
最小公倍数:两个数的乘积等于最大公约数乘于最小公倍数
int k;
while (true) {
k = j % i;
if (k == 0)
break;
j = i;
i = k;
}
j = x * y / i;
素数:除了1和自身以外,不能被其他数整除的数,2是最小的素数
求解素数数组:
for (int i = 2; i < 1100; ++i)
if (isPrime[i])
for (int j = i * i; j < 1210000; j += i) //非素数求解
isPrime[j] = false;
-----------------------------------------------------------
2013年7月25日17:04:26
闰年的判定:x%4==0&&x%100!=0)||x%400==0
递归法求换瓶盖以及香烟问题
int sum=m;
while(m/k){
sum=sum+m/k;
m=m/k+m%k;
}
等价于公式 m+(m-1)(k-1)
int i;
for(i=0;i<3;i++)
printf("%.*s%s\n", i, " ", "########");
return 0;
.*=输出i个宽度格式的字符串
scanf("\n%*c%d",&w); 忽略一个字符读取
------------------------------------------------------