C#程序设计--任何一个自然数m的立方均可写成m个连续奇数之和

来源:互联网 发布:淘宝bug是什么意思啊 编辑:程序博客网 时间:2024/05/16 13:01
题目:任何一个自然数m的立方均可写成m个连续奇数之和
例如:1^3=1;2^3=3+5;3^3=7+9+11;4^3=13+15+17+19
5^3=21+23+25+27+29
编程实现:输入一自然数n,求组成N的3次方n个连续奇数。
思考:可以看出每次输出的第一个数是n(n-1)+1 之后的数依次加2 因为是连续的。这是第一种方法,前提是知道第一个数与n的关系。第二种方法是不知道第一个数与n的关系,那么就的遍历寻找第一个数了,然后判断第一个数和后边(n-1)个数的和是否和n^3相等,不相等的继续遍历,相等则跳出循环,输出结果。
第一种方法:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CSharpTest{    class Class1    {        public void jishuan(int n)        {            int m = (int)Math.Pow(n, 3);            int[] ary = new int[n];            int fir = n * (n - 1) + 1;            Console.Write(n + "^3=" + fir);            for (int i = 1; i < n; i++)            {                fir = fir + 2;                Console.Write("+" + fir);            }            Console.Write("=" + m);        }    }}
第二种方法:
        public void js(int n)        {            int m = (int)Math.Pow(n, 3);            int sum = 0;            for (int a = 1; a < (m / 2); a += 2)// m/2因为最大的奇数不会超过这个n^3的一半            {                int fir = a;                sum = a;                for (int i = 1; i < n; i++)                {                    fir = fir + 2;                    sum +=fir;                }                if (sum != m)                {                    continue;                }                else                {                    Console.Write(n + "^3=" + a);                    for (int i = 1; i < n; i++)                    {                        a = a + 2;                        Console.Write("+" + a);                    }                    return; //得到想要的结果就停止,节省时间                }            }        }
结果如题目要求:
输入4 
4^3=13+15+17+19=64

	
				
		
原创粉丝点击