基础编程50道(选)

来源:互联网 发布:c语言转义字符有哪些 编辑:程序博客网 时间:2024/06/08 17:01

   这几天在看编程指南,那本书没有习题。吾以为只看而不练不太好,故在网上寻得基础编程50道,这50道题网上到处都有,其中有好有劣。几天下来,编了一半,贴几道好的上来吧。

 

   【程序6】
 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。  
 程序分析:利用辗除法。
 

 

这个辗转相除法,是查书的,几几年前学的,忘了。

【程序11】  
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?  
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。  

 

 这题原先的思路是用一个三维数组,每维的元素个都是4,先把所有可能的数都储存起来。但编着编着觉得多此一举,何不在三重循环之后加个判断语句,去除下标相等的项。再进一步想,数组的声明也不需要了,直接打印就行了。另外,第七行的判断i,j,k是否相等,如果备选的数字较多会很长,不方便,暂时想不到有什么替代的。

【程序13】
 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?  程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

里面的判断是否是整数是自己想的,不知java类库中又没有与之等效的方法?另外,如果10万再加大,结果基本是不变的,因为数越大,相邻数的平方差距会越拉越大。某个大数是完全平方数,加168之后还是完全平方数基本是不可能的了

【程序14】
 题目:输入某年某月某日,判断这一天是这一年的第几天?  
 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,
 闰年且输入月份大于3时需考虑多加一天。  

  

这里多手写了个容器来接受数据,还是多手写了个检验日期合法性的方法,导致代码行数有点多 。

计算前几个月共多少天的的思路因人而异。我的考虑是,12个月又不多,我自己计算一遍,再用switch来判断。 

 

今天先发到这里,陆续还会有的。 

原创粉丝点击