C#面试题:

[复制链接]
查看11 | 回复4 | 2013-7-14 17:58:05 | 显示全部楼层 |阅读模式
class Program
{
static void Main(string[] args)
{
int n = 62;//输入100
Console.WriteLine(F(n));//输出455
Console.ReadLine();
}
private static int F(int n)
{
List L = new List();
//分解质因数
for (int i = 2; i int main(){int a[100];int n;while(scanf("%d",&n)!=EOF){int i,j;j=0;for(i=9;i>1;i--){
while(n%i==0)
{
...
回复

使用道具 举报

千问 | 2013-7-14 17:58:05 | 显示全部楼层
看到这个题目,我首先想到的是什么。。。开根,是的,就是开根,先开二次方根(同样情况先二次方根)比如48,开根,比6大一点,获取位数,得到6.几 是个一位数向下取得6,然后继续取5。4。3。在4的时候出现12(大于一位数),OK,就是6了,答案是68.。比如168,开根,先开二次方根,得到12多一点,不是一位数,
...
回复

使用道具 举报

千问 | 2013-7-14 17:58:05 | 显示全部楼层
分解成9^a1 * 8^a2 * 7^a3 * 6^a4 * 5^a5 *4^a6* 3^a7 * 2^a8然后排序完事。尽可能把大的提出来。 不能分解则-1 for i = 9 to 2 do argmax{a} i^a | mm /= i^a程序就是这样了。...
回复

使用道具 举报

千问 | 2013-7-14 17:58:05 | 显示全部楼层
先分解,排序,在组合起来。如果存在不能分解的两位数因子则返回-1...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行