You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#按指定交替格式打印1到100的数字?

实现1到100的特定顺序打印

要实现「100, 1, 2, 99, 98, 3, 4, 97,……52, 49, 50, 51」的打印格式,核心是抓住数字的排列规律:从两端向中间交替取数,先取最大的1个,之后循环取最小的2个、最大的2个,直到所有数字都被取出。

以下是两种适合新手理解的C#实现方式:

方法一:双指针法(直观易懂)

通过两个指针分别指向当前最小和最大的未取数字,按规则依次添加到结果列表,最后统一输出:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 创建列表存储最终顺序
        List<int> sequence = new List<int>();
        int start = 1; // 指向当前最小的未取数字
        int end = 100; // 指向当前最大的未取数字

        // 先添加第一个最大数100
        sequence.Add(end);
        end--;

        // 循环取数:每次取2个小数、2个大数,直到所有数字被取完
        while (start <= end)
        {
            // 添加2个当前最小的数
            if (start <= end)
            {
                sequence.Add(start);
                start++;
            }
            if (start <= end)
            {
                sequence.Add(start);
                start++;
            }

            // 添加2个当前最大的数
            if (start <= end)
            {
                sequence.Add(end);
                end--;
            }
            if (start <= end)
            {
                sequence.Add(end);
                end--;
            }
        }

        // 用逗号分隔打印结果
        Console.WriteLine(string.Join(", ", sequence));
    }
}

方法二:分组拼接法(按规律分组)

观察排列规律,将数字分成多个小组,按组拼接后输出:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> sequence = new List<int>();
        // 第一个组:仅包含100
        sequence.Add(100);
        int count = 1; // 记录已添加的数字数量
        int groupNum = 2; // 从第2组开始处理

        // 循环添加每组的数字,直到添加99个数字(最后一个单独处理)
        while (count < 99)
        {
            if (groupNum % 2 == 0)
            {
                // 偶数组:添加连续的两个小数
                int num = (groupNum / 2) * 2 - 1;
                sequence.Add(num);
                sequence.Add(num + 1);
                count += 2;
            }
            else
            {
                // 奇数组:添加连续的两个大数
                int num = 100 - ((groupNum - 1) / 2) * 2;
                sequence.Add(num - 1);
                sequence.Add(num - 2);
                count += 2;
            }
            groupNum++;
        }

        // 添加最后一个剩余数字51
        sequence.Add(51);

        // 打印结果
        Console.WriteLine(string.Join(", ", sequence));
    }
}

两种方法都能实现需求,其中双指针法逻辑更直观,适合新手理解和调试。你可以直接复制代码到Visual Studio或其他C#编辑器中运行测试。

内容的提问来源于stack exchange,提问作者Fatma Sahatchieva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:35:18