摘要:
整体思路 这是一个典型的递归型问题: 1. 临界点:如果只有1级台阶,有1种走法(一次一步);如果有2级台阶,则有2种走法(一次一步或一次两步) 2. 递归方法,对于n级台阶,如果第一次走1步,还剩n 1级台阶,n 1级台阶的走法有 f(n 1) 步,如果第一次走2步,还剩n 2级台阶,n 1级台阶 阅读全文
摘要:
整体思路 对于任意的p,q,r,可能使得p q=r的最小进制应该是p,q,r三个数的所有数位中最大的数字+1,例如,6,9,42三个数中所有数位中最大的数字是9,故可能成立的最小进制是9+1,即10。题目告诉我们,最大进制B using namespace std; int p, q, r; //定 阅读全文
摘要:
整体思路 本题如果使用scanf每次读入一个单词、比对替换后再进行输出的话就十分简单,使用这种方法必须要用数组把读入的所有单词存起来,读入的count个单词的前n 2个是原文,第n 1个是查找的单词,第n个是替换值。 如果要求设计一个函数 replace(原文,被替换单词,替换值) ,这就稍有些难度 阅读全文
摘要:
整体思路 这里需要大量使用素数,必须能够想到 只求出M到N之间的素数是不够的 ,因为M到N之间数字的反序有可能是大于M或小于N的数字,例如M=2,N=20,那么19的反序91大于20,所以使用 埃拉拖色尼 算法计算素数表的时候要让范围尽可能大,根据题目要求,设计为1~100000。 本题也可以尝试不 阅读全文
摘要:
整体思路 使用 埃拉拖色尼 算法提前计算出1000以内的素数表。 设计一个回文判断函数isHW(int n),难点在于数字回文的判断。一个简单的方法是将数字n使用 sprintf 输出在一个数组中,然后从数组的头和尾开始进行逐一对比。 著名金融家“索罗斯”的名字“SOROS”就是一个回文字串。 例程 阅读全文
摘要:
整体思路 本题涉及大量素数的使用,故使用 埃拉拖色尼 算法提前计算出素数表可以避免大量、重复的计算。 判断素数对很简单,使用两个变量p1和p2代表素数表中的第一个和第二个素数,依次在表中向后移动,判断p2 p1是否等于2即可。 例程 include include using namespace s 阅读全文