自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#算法解決蘿卜地問題

開發(fā) 后端 算法
C#算法解決蘿卜地問題想大家介紹了使用C#算法如何計(jì)算假想實(shí)際問題的思路,希望對(duì)大家理解學(xué)習(xí)C#算法有所幫助。

C#算法解決蘿卜地問題是什么呢?首先讓我們來看看題目:

話說你在走路上班時(shí),經(jīng)過一片種植蘿卜的農(nóng)田。這塊田地的形狀是一個(gè)矩形的網(wǎng)格。

field的第i個(gè)元素的第j個(gè)字符,表示田地的第i行第j列的格子里包含的蘿卜的數(shù)目。

我們定義一個(gè)格子的特殊程度為它周圍所有格子的蘿卜個(gè)數(shù)的和; 它周圍的格子包含它上下左右以及對(duì)角相鄰的格子,

最多有8個(gè),在田地的邊界上的格子會(huì)少一些。如果一個(gè)格子周圍沒有別的格子,則它的特殊程度為0。

請(qǐng)返回田地中特殊程度在A和B之間的所有格子的數(shù)目(包含A,B)。

Definition

Class:  NumberField

Method:  countSpecialNumbers

Parameters:  string[], int, int

Returns:  int

Method signature:  int countSpecialNumbers(string[] field, int A, int B)

(be sure your method is public)

Constraints

-  field 包含1個(gè)到50個(gè)元素,含1和50。

-  field的每個(gè)元素包含1個(gè)到50個(gè)字符,含1和50。

-  field的每個(gè)元素包含相同的字符數(shù)。

-  field的每個(gè)元素的字符均為’0’到’9’之一。

-  A的范圍會(huì)在0到100之間,含0和100。

-  B 的范圍會(huì)在A到100之間,含A和100。

C#算法的具體實(shí)現(xiàn)如下:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Field  
  6. {  
  7.     /// <summary>  
  8.     /// 2009.6.1 with ann by hooyes  
  9.     /// </summary>  
  10.    public class NumberField  
  11.     {  
  12.         static void Main(string[] args)  
  13.         {  
  14.  
  15.             //Test .  
  16.             string[] fieldx ={  
  17.    "1234567890",  
  18.     "1234567890",  
  19.     "1234567890",  
  20.    "1234567890",  
  21.       "1234567890",  
  22.    "1234567890",  
  23.    "1234567890",  
  24.    "1234567890",  
  25.    "1234567890",  
  26.    "1234567890",  
  27.    "1234567890"};  
  28.  
  29.             int r = countSpecialNumbers(fieldx, 3, 18);  
  30.  
  31.             Console.WriteLine(r);  
  32.             Console.Read();  
  33.         }  
  34.         /// <summary>  
  35.         /// 獲取第i,j格的蘿卜數(shù)  
  36.         /// </summary>  
  37.         /// <param name="i">行</param>  
  38.         /// <param name="j">列</param>  
  39.         /// <param name="fieldx"></param>  
  40.         /// <returns></returns>  
  41.         public static int fij(int i, int j,string[] fieldx)  
  42.         {  
  43.             int Rvalue = 0;  
  44.  
  45.             if (i < 0 || j < 0)  
  46.             {  
  47.                 return 0;  
  48.             }  
  49.  
  50.             int y = fieldx.Length - 1; //行  
  51.             int x = fieldx[0].Length - 1; //列  
  52.  
  53.             if ((i > y) || (j > x))  
  54.             {  
  55.                 return 0;  
  56.             }  
  57.             string f = fieldx[i];  
  58.             byte[] hooyesBy = System.Text.Encoding.ASCII.GetBytes(f);  
  59.             char xB = (char)hooyesBy[j];  
  60.             Rvalue = int.Parse(xB.ToString());  
  61.             return Rvalue;  
  62.         }  
  63.         /// <summary>  
  64.         /// 獲取第i,j格的特殊度  
  65.         /// </summary>  
  66.         /// <param name="i">行</param>  
  67.         /// <param name="j">列</param>  
  68.         /// <param name="fieldx"></param>  
  69.         /// <returns></returns>  
  70.         public static int fsp(int i, int j, string[] fieldx)  
  71.         {  
  72.             int Rvalue = 0;  
  73.             Rvalue = fij(i - 1, j, fieldx) +   
  74.   fij(i + 1, j, fieldx) +   
  75.   fij(i, j - 1, fieldx) +   
  76.   fij(i, j+1, fieldx) +   
  77.   fij(i - 1, j - 1, fieldx) +   
  78.   fij(i + 1, j + 1, fieldx) +   
  79.   fij(i - 1, j + 1, fieldx) +   
  80.   fij(i + 1, j - 1, fieldx);  
  81.             return Rvalue;  
  82.         }  
  83.         /// <summary>  
  84.         /// 返回滿足特殊度在A至B之間的格子數(shù)  
  85.         /// </summary>  
  86.         /// <param name="field"></param>  
  87.         /// <param name="A">特殊度下限</param>  
  88.         /// <param name="B">特殊度上限</param>  
  89.         /// <returns></returns>  
  90.         public static int countSpecialNumbers(string[] field, int A, int B)  
  91.         {  
  92.             int Rvalue = 0;  
  93.             //int i=0;  
  94.             //int j=0;  
  95.             int y = field.Length-1; //行  
  96.             int x = field[0].Length-1 ; //列  
  97.             for (int i = 0; i <=y; i++)  
  98.             {  
  99.                 for (int j = 0; j <=x;j++)  
  100.                 {  
  101.                     int tInt = fsp(i, j, field);  
  102.                     if (tInt >= A && tInt <= B)  
  103.                     {  
  104.                         Rvalue++;  
  105.                     }  
  106.  
  107.                 }  
  108.  
  109.             }  
  110.  
  111.             return Rvalue;  
  112.         }  
  113.     }  

C#算法C#算法解決蘿卜地問題就向你介紹點(diǎn)到這里,希望對(duì)你理解C#算法有所幫助。

【編輯推薦】

  1. 介紹C#中的值類型
  2. C#算法巧解八皇后問題淺析
  3. C#算法解決張老師的生日問題
  4. C#算法解決的一道面試題
  5. C#算法實(shí)現(xiàn)字符串反轉(zhuǎn)淺析
責(zé)任編輯:仲衡 來源: cnblogs
相關(guān)推薦

2009-08-11 09:40:22

張老師的生日問題C#算法

2009-08-06 10:35:27

C# lock thi

2021-06-11 00:09:20

C#爬蟲版本

2009-08-10 13:49:50

C# txt文件

2009-08-13 17:25:18

C# Convert類

2009-08-07 14:47:23

C#路徑問題

2009-08-11 09:16:00

2012-02-02 14:34:37

C# Socket

2024-09-17 17:50:28

線程線程安全代碼

2009-09-15 17:46:08

C#綁定句柄無效

2009-08-11 10:12:07

C#算法

2009-08-28 10:14:45

C#內(nèi)存泄露

2009-08-11 13:54:54

約瑟夫環(huán)算法C#算法

2009-08-06 16:01:30

C#接口成員

2009-09-03 14:38:28

C#日期格式化C#日期格式

2025-02-10 10:52:34

WinForm窗口閃爍C#

2009-09-02 14:30:35

C#換行符號(hào)

2009-08-05 08:42:41

C#中用Oracle執(zhí)DataSet

2011-04-25 15:15:00

C#

2009-08-21 15:02:31

C#加密算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)