1using System;
 2
 3namespace test19
 4{
 5    /// <summary>
 6    /// 一个正整数分解成若干个连续自然数之和
 7    /// </summary>

 8    class Class1
 9    {
10        public static void findSumArray(int n)//求一个整数等于若干自然数连加
11        {
12            int sum=0;
13            int flag=0;
14            for(int i=1;i<(n/2+1);i++)
15            {
16                for(int j=i;j<=(n/2+1);j++)
17                {
18                    sum+=j;
19                    if(sum==n)
20                    {
21                        flag=1;
22                        for(int k=i;k<=j;k++)
23                            Console.Write(k+" ");
24                        Console.WriteLine();
25                        sum=0;
26                        break;
27                    }

28                }

29                sum=0;
30            }

31            if(flag==0)
32                Console.WriteLine("NONE");
33        }

34        public static void findSumArray2(int n)//求一个整数等于若干自然数连加
35        {
36            int flag=0;
37            for(int i=1;i<n/2+1;i++//连续自然数连加,最大只能是从n/2处开始
38            {
39                int j=i;
40                int sum=0;
41                while(sum<=n)    //找到边续自然数的区间(i,.,j)
42                {
43                    sum += j;
44                    j++;
45                    if(sum==n)
46                    {
47                        flag=1;
48                        for(int k=i;k<=j-1;k++)
49                            Console.Write(k+" ");
50                        Console.WriteLine();
51                        break;
52                    }

53                }

54            }

55            if(flag==0)
56                Console.WriteLine("NONE");
57        }

58        static void Main(string[] args)
59        {
60            Console.WriteLine("请输入一个正整数(大于或等于3):");
61            int n=int.Parse(Console.ReadLine());
62            findSumArray2(n);
63        }

64    }

65}

66

只有注册用户登录后才能发表评论。

posts - 46, comments - 16, trackbacks - 0, articles - 7

Copyright © 火山工作室