摘要:
求阶乘的最后一位非零整数。开始天真无鞋,以为只取最后非零位累成即可.然后自然出错官方解释,可能存在xx12*xxx5,如果只取最后非零位累乘...2*5=10 mode 10 ==1 ,这样两个数十位上的就被忽略了...大概是这个意思。然后解题思路是,10全部是由2*5产生的,即使是10本身也是2*5,所以只要去掉累乘中的所有2,5对就好了而2出现的概率远大于5,用数组arry[n]保存1到n,然后每个数mod5 直到因子5全部被剔除 ,同时记录剔除的个数m,然后再对更新后的arry[n]剔除m个2(记住除多除少了)这样就不会产生10了.在取最后一位累乘即可. 看似简单,本菜真想不出来了 1 阅读全文
摘要:
看编程之美上这题,感觉状态方程写的好别扭,我感觉应该是用一个数组s[i]表示用到ary[i]时最大数组和所以s[i]=max(s[i-1]+ary[i],ary[i]) 意为:要得到,用到ary[i](表示必须包含ary[i])构成的最大数组和,要么是用了包括ary[i-1]的最大数组和s[i-1]要么完全没用到s[i-1],即直接是ary[i]。、但是这最后的s[lengt-1]只是一个必须用到ary[i]的最大数组和,有可能是不是最大的,所有还需要一个变量gmax,gmax=(gmax,s[i])应为最大子数组肯定出现在数组s[i] i=0-n-1内某个位置#includeusing na 阅读全文
摘要:
技术题竟然没做完啊,我真是擦蛋了。case好久没用了,我忘记了如果不加break要不要再根据case m判断...这真是完蛋...然后一个质因数分解,这个我真没想过怎么做,随便copy了个...然后倒数第二题约瑟夫环,这东西还是大一c++时的题目,好久没做了,写了个发现在vs2012上跑了下,总是结果输出后显示在已损坏了程序内部状态的 xxx.exe 中发生了缓冲区溢出。按“中断”以调试程序,我tm调了半天没发现什么问题,最后想着反正结果出来了,代码贴上去再说...结果一个提示,超时答案已提交.这tm我最后一题都还没看到啊...然后我把这该死的代码用vs2008跑了下,没问题啊...真不知道咋 阅读全文