程序设计之美

我贴出我自己的设计程序时候的一些体会与心得。有些复杂的设计方案我会通过定时更新的方案去分享给大家

没有目录的组织,所以想到什么就写什么吧。

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);  忽略一个字符读取    
------------------------------------------------------



你可能感兴趣的:(程序设计之美)