随笔分类 -  趣题

摘要:又一道笔试题,就是给定一个分数,分子为X,分母为Y,如果它是循环小数,则输出该循环小数的循环部分。要使某位在小数部分循环出现,就是要使此时的余数和之前某位的余数相等,整理下思路,分子除以分母得到余数,然后余数乘以10再除以分母得到下一个余数,如此循环做下去,看看此时的余数有没跟之前余数相等的,有的话,它就是循环小数,也就找到循环体了。#include <stdio.h>#define N 1000int checkSame(int a[], int maxIndex, int checkValue){ int j; for(j = 0; j <= maxIndex; j++) 阅读全文
posted @ 2013-03-03 16:46 sillypudding 阅读(444) 评论(0) 推荐(0)
摘要:看到说找工作笔试面试经常会出这道题,题目很简单明了,就是在一组数字中,找出最大的K个数,首先想到的就是利用快排算法改一改。这里简单回顾下快排算法(从小到大): 1 2 int Partition(int a[],int low,int high) 3 { 4 int pivotkey; 5 pivotkey=a[low]; 6 while(low<high) 7 { 8 while(low<high&&a[high]>=pivotkey) 9 { 10 --high; 11 ... 阅读全文
posted @ 2013-02-28 22:59 sillypudding 阅读(402) 评论(0) 推荐(0)
摘要:无意间看到一个有关丑数的问题,问题描述:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第n个丑数。最简单的方法就是从小到大遍历一遍,找出第n个,但是耗时实在是无法忍受:#include<stdio.h>int IsUgly(int checkNum){ while(checkNum % 2 == 0) checkNum /= 2; while(checkNum % 3 == 0) checkNum /= 3; while(che... 阅读全文
posted @ 2013-02-03 19:00 sillypudding 阅读(282) 评论(0) 推荐(0)
摘要:http://blogger.org.cn/blog/more.asp?name=njucs&id=3772这里只贴原博关键内容,方便自己以后查看。问题描述 :80年代全世界流行一种数字游戏,在中国我们把这种游戏称为“24点”。现在我们把这个有趣的游戏推广一下:您作为游戏者将得到6个不同的自然数作为操作数,以及另外一个自然数作为理想目标数,而您的任务是对这6个操作数进行适当的算术运算,要求运算结果小于或等于理想目标数,并且我们希望所得结果是最优的,即结果要最接近理想目标数。您可以使用的运算只有:+,-,*,/,您还可以使用()来改变运算顺序。注意:所有的中间结果必须是整数,所以一些除法 阅读全文
posted @ 2013-01-24 23:59 sillypudding 阅读(275) 评论(0) 推荐(0)