| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 857 人关注过本帖
标题:求更简洁的代码:有趣的数列
只看楼主 加入收藏
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
结帖率:96.15%
收藏
已结贴  问题点数:10 回复次数:6 
求更简洁的代码:有趣的数列
一、题目
    编程实现,将数列1,4,7,10,13,……依次如图排列成6行。左边第一列为第一列,以此排列,那么数349排在第几行第几列。
    1    4    7    10    13
    28   25   22   19    16
         31   34   37    40   43
    58   55   52   49    46
    61   64   67   70    73
               

二、代码
namespace Main方法
{
    class Program
    {
        static void Main(string[] args)
        {
            int count = 1,number=0;
            for (int i = 0; i < 200; i++)
            {
                if (i != 0 && i % 10 == 0) { count = count + 18; }  //转逆向输出时,增加18               
                if (i%10 < 5)
                {
                    if (i % 5 == 0) { Console.WriteLine(); number++; }
                    if ((number) % 2 != 0 && (number) % 3 == 0)
                    {
                        Console.Write("{0}\t{1}", " ", count);
                        count = count + 3;
                    }
                    else
                    {
                        Console.Write("{0}\t", count);
                        count = count + 3;
                    }
                }   //顺向输出行
                else
                {                  
                    if (i % 5 == 0) { Console.WriteLine(); count = count + 12; number++; }  //转顺向输出时,增加12
                    if ((number) % 2 != 0 && (number) % 3 == 0)
                    {
                        Console.Write("{0}\t{1}", " ", count);
                        count = count - 3;
                    }
                    else
                    {
                        Console.Write("{0}\t", count);
                        count = count - 3;
                    }
                }  //逆向输出行
            }
            Console.ReadKey ();           
        }
    }
}

三、探求:更为简洁的代码

    上述代码实现了题目的要求,在此,小虾探求更简洁的代码。请大侠们不吝赐教,小虾先谢谢各位了。
搜索更多相关主题的帖子: count number 
2014-08-16 16:23
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:5 
现在还没下班,晚上回去想想

Maybe
2014-08-16 18:28
qq82300356
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2014-8-15
收藏
得分:5 
盛哥,哎,,我晚上七点20想到刚才终 于想出来了。  现在是晚上十点四十五分。想了我三个小时,不过我是用C写的。看看。可能我写的比你的还要复杂,不过我的水平只有这么高了。
   我把结果放到附件了。这个是源程序:
图片附件: 游客没有浏览图片的权限,请 登录注册
         这个是结果:
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-08-16 22:50
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
qq82300356您好!
很不错了,用的时间也不长,代码也比我的简洁。
一个商榷的问题:题目要求第3行、9行、15行、……输出时,往右边缩进一格,有没有更好的方法来实现。

艰难地走在C#自学的路上…………
2014-08-17 09:10
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
不瞒群里的各位大侠,本道题是一道周期问题的奥数题,我想用程序来实现解答。感觉自己写的C#代码好像还是很复杂,所以在此求 更简洁 的代码。
1)比如:控制逆顺向输出数字的地方,我用+18,+12来实现的,此处能否有更简洁的代码——即更好的方法?
2)又如:我的代码中有没有多余的代码行,即可有可无的代码行是否存在?
请各位大侠高手,不吝赐教。谢谢!

艰难地走在C#自学的路上…………
2014-08-17 09:15
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
运行结果是:
图片附件: 游客没有浏览图片的权限,请 登录注册

艰难地走在C#自学的路上…………
2014-08-17 09:56
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
我的想法是直接是+3,通过别的变量进行行列控制,判别什么时候换行、倒叙

Maybe
2014-08-17 21:42
快速回复:求更简洁的代码:有趣的数列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046603 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved