Algorithm-求 n 的平方根的小数点后的第 k 个数

 1             Console.Write("请输入整数 n:");
 2             string strN = Console.ReadLine();
 3 
 4             Console.Write("请输入整数 k:");
 5             string strK = Console.ReadLine();
 6 
 7             int n = 0;
 8             int k = 0;
 9             if (!int.TryParse(strN, out n) || !int.TryParse(strK, out k))
10             {
11                 Console.Write("请输入整数!");
12                 return;
13             }
14 
15             if (k <= 0)
16             {
17                 Console.Write("k 必须为正整数!");
18             }
19 
20             double j = 1, r = 0;
21 
22             while ((r + j) * (r + j) <= n)
23             {
24                 r += j;
25             }
26 
27             if (r * r == n)
28             {
29                 Console.Write(r);
30                 return;
31             }
32 
33             for (int i = 0; i < k ; i++)
34             {
35                 j /= 10;
36                 while ((r + j) * (r + j) < n)
37                 {
38                     r += j;
39                 }
40             }
41 
42             Console.WriteLine(r);
43 
44             Console.WriteLine(r.ToString().Last());

 

posted @ 2012-04-09 20:05  Howll Chen  阅读(307)  评论(0编辑  收藏  举报