POJ1004 1003 1002 1005 1006 1007 1001刷题

来源:互联网 发布:java并发编程好的书籍 编辑:程序博客网 时间:2024/06/11 05:40

大二的时候接触过一段时间ACM 而C和C++也好久没用了 基本语句都有些生疏更别提算法了 

使用的是 thestoryofsnow的专栏 上的刷题顺序 一开始会十分初级 代码甚至分析在网上都是一艘一大片 而写出来的目的是为了总结刷题过程学到的东西 方便以后回顾 以及记录自己进步的脚步


1004 主要复习了C语言的输入输出语句


1003 nothing to say


1002 interesting

这道题乍一看很简单 就是一个字符转换的问题 但是提交后会超时 因此需要寻找更简便的算法

其中一个简便算法的思路就是使用数组的下标来表示转换后的电话号码 用数组的值表示该号码的出现次数 代码可以写得很简单


1005 就一个数学公式


1006 interesting 

使用计算机程序的暴力循环可以解决 但是会超时 简便方法就是用所谓的剩余定理 问题原型为

一个数被3除余1,被4除余2,被5除余4,这个数最小是几?题中3、4、5三个数两两互质。则〔4,5〕=20;〔3,5〕=15;〔3,4〕=12;〔3,4,5〕=60。为了使20被3除余1,用20×2=40;使15被4除余1,用15×3=45;使12被5除余1,用12×3=36。然后,40×1+45×2+36×4=274,因为,274>60,所以,274-60×4=34,就是所求的数

其实就是余数定理的灵活应用


1007 输入输出形式跟1002相似

没什么技术含量 就是遍历就可以 但是当时写的时候在细节上浪费了一些时间 需要注意编程规范


1001 大数相乘的题 用数组相乘表示 自己计算进位和小数点的位置 这个代码是从网上粘的 以后碰到类似题目 直接粘就行


0 0
原创粉丝点击