2016年10月13日 星期四

#12149_Feynman

分級:1
分類:數學計算

題目:

Richard Phillips Feynman was a well known American physicist and a recipient of the
Nobel Prize in Physics. He worked in theoretical physics and also pioneered the field
of quantum computing. He visited South America for ten months, giving lectures and
enjoying life in the tropics. He is also known for his books "Surely You're Joking, Mr.
Feynman!" and "What Do You Care What Other People Think?", which include some
of his adventures below the equator.

His life-long addiction was solving and making puzzles, locks, and cyphers. Recently,
an old farmer in South America, who was a host to the young physicist in 1949,
found some papers and notes that is believed to have belonged to Feynman. Among
notes about mesons and electromagnetism, there was a napkin where he wrote a
simple puzzle: "how many different squares are there in a grid of N ×N squares?".
In the same napkin there was a drawing which is reproduced below, showing that,
for N=2, the answer is 5.


Input
The input contains several test cases. Each test case is composed of a single line,
containing only one integer N, representing the number of squares in each side of
the grid (1 ≤ N ≤ 100).
The end of input is indicated by a line containing only one zero.

Output
For each test case in the input, your program must print a single line, containing the
number of different squares for the corresponding input.

Sample Input
2
1
8
0
Sample Output
5
1
204

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CPE_test2
{
    class Feynman
    {
        static void Main(string[] args)
        {
            string number = "" ;
            int ans = 0;
            Console.WriteLine("請輸入數字");
            string msg = "";
            while (true)
            {
                number = Console.ReadLine();
                if (number == "0") break;
                ans = Convert.ToInt32(number);
                //if (ans < 1) Console.WriteLine("錯誤:輸入數字小於1!");
                //if (ans > 100) Console.WriteLine("錯誤:輸入數字大於100!");
                ans = repeat(ans);
                msg += ans + Environment.NewLine;
            }
            Console.WriteLine(msg);
        }
        ///遞迴
        public  static int repeat(int num)
        {
            if (num == 1) return 1;
            return repeat(num - 1) + num * num;
        }
    }
}

沒有留言:

張貼留言