C# 输入一个正整数N,判断N是奇数还是偶数,输出1~N的奇数和或是偶数和,三种不同方法分别实现

using System;

namespace _2_2 {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("请输入一个正整数N");
            string str = Console.ReadLine();
            int number =int.Parse(str);
            bool isOdd = false;
            int sum = 0;

            isOdd = OddOrEven1(number, out sum);
            AnswerFormat(isOdd, number, sum);

            isOdd = OddOrEven2(number, out sum);
            AnswerFormat(isOdd, number, sum);

            isOdd = OddOrEven3(number, out sum);
            AnswerFormat(isOdd, number, sum);
          

            Console.ReadKey();
        }

        /// <summary>
        /// 1.判断奇数偶数并求和:循环方式
        /// </summary>
        public static bool OddOrEven1(int number,out int sum) {
            bool isOdd = (number % 2) > 0;
            sum = 0;
            //初始值根据如果是奇数取1,否则取2
            for (int start = isOdd ? 1 : 2; start <= number; start+=2) {
                sum += start;
            }
            return isOdd;
        }

        /// <summary>
        /// 2.判断奇数偶数并求和:直接计算方式
        /// </summary>
        public static bool OddOrEven2(int number, out int sum) {
            bool isOdd = (number % 2) > 0;
            if (isOdd) {
                sum = (1 + number) / 2 * (number + 1) / 2;
            } else {
                sum = (2 + number) * number / 4;
            }
            return isOdd;
        }

        /// <summary>
        /// 3.判断奇数偶数并求和:递归计算方式
        /// </summary>
        public static bool OddOrEven3(int number, out int sum) {
            sum = OddOrEvent3(number);
            return number % 2 > 0;
        }

        /// <summary>
        /// 递归计算方法
        /// </summary>
        private static int OddOrEvent3(int number,int currentSum = 0) {
            currentSum += number;
            if (number <= 1) return currentSum;
            return OddOrEvent3(number -= 2, currentSum);
        }



        public static void AnswerFormat(bool isOdd,int number,int sum) {
            if (isOdd) {
                Console.WriteLine($"{number} 是奇数,小于等于{number}的所有奇数的和为:{sum}");
            } else {
                Console.WriteLine($"{number} 是偶数,小于等于{number}的所有偶数的和为:{sum}");
            }
        }
    }
}

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值