杨彦涛有那么牛吗:编程比赛题目(怎么做?)

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 11:52:19
对一个由数字字符组成的字符串s(如"103", "22")。计算由这些数字的排列组成的正整数中约数最少的数字。
现在你有一个函数countDivisor可供调用,请编写一个函数getMax

注意接口定义为:
int getMax(char *s);

字符串s长度不超过5(至少有1个字符),数字可能重复且不包括其他字符,至少有1个数字字符不是'0'。
返回的数字必须且只能使用所有s的元素排列而成,字符'0'可以排在数字开头(这样返回数的位数可能会减少)。

假如有多种排列得到的数字,它们的约数数量一样少,那么返回比较小的那个数。

本题建立在第一题的基础上,假如你没有给出第一题的函数,我将链接一个countDivisor供你的程序调用。
如果你另有解决方法,则只需不在getMax内直接(或间接)的调用countDivisor。

getMax("12") = 21 // 12和21的约数分别有6和4个,所以选择21
getMax("06") = 6 // 6和60的约数分别有4和11个,所以选择6
----------------------------
所有测试,都必须在1秒内返回,超时不得分。