首页 新闻 会员 周边 捐助

c#怎么用循环语句倒着输出36的所有因数

0
悬赏园豆:30 [已解决问题] 解决于 2011-10-15 20:34

c#怎么用循环语句倒着输出36的所有因数?

求各位大侠帮帮忙

keiling的主页 keiling | 初学一级 | 园豆:15
提问于:2011-10-13 20:00
< >
分享
最佳答案
0
int n = 36;
for (int i = 1; i <= n/2; i++)
{
if (n % i == 0)
{
Console.WriteLine(i + "\t" + n/i); //效率至上的话最好用 i.ToString + "\t" + (n/i).ToString();
}
}

前面的两个答案,一个多循环了n/2次,另外一个少输出了一半的因数。

收获园豆:20
水牛刀刀 | 大侠五级 |园豆:6350 | 2011-10-14 15:41

你的结果:

1 36

2 18

3 12

4 9

6 6

9 4

12 3

18 2

这个结果是有问题的,提问者要求的答案应该是:

36 18 12 9 6 4 3 2 1

再提供一个参考程序:

        static void Main(string[] args)
{
int n = 36;
for (int index = 1; index <= n / 2; index++)
{
if (n % index == 0)
{
Console.Write(n / index + "\t");
}
}
Console.Write(1);
Console.Read();
//36 18 12 9 6 4 3 2 1
}



artwl | 园豆:16736 (专家六级) | 2011-10-15 21:02
其他回答(2)
2

   static void Main(string[] args)
        {
            int n = 36;
            for (int index = n; index > 0; index--)
            {
                if (n % index == 0)
                {
                    Console.Write(index.ToString() + "\t");
                }
            }
            Console.Read();
        }

收获园豆:5
--中庸-- | 园豆:408 (菜鸟二级) | 2011-10-13 21:02

哈哈   就是这样

支持(0) 反对(0) keiling | 园豆:15 (初学一级) | 2011-10-14 09:42
0
        static void Main(string[] args)
{
int n = 36;
for (int index = 1; index <= n / 2; index++)
{
if (n % index == 0)
{
Console.Write(index.ToString() + "\t");
}
}
Console.Read();
}

比楼上的时间复杂度要小一点哈

收获园豆:5
artwl | 园豆:16736 (专家六级) | 2011-10-13 22:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册