题
每个主题行我正在尝试返回包含pi的第一个数字的int数组长度n。
所以makepi(3) - > {3,1,4}
我知道我需要得到pi,它被存储为双倍。我需要将双倍转换为char,以便我可以通过阵列搜索,以查找长度的每个char n。然后将其转换回ANT数组。
我正在遇到在这里去哪里。我知道有一个循环,但我无法让我的大脑弄清楚我需要做的事情。谢谢!
public int[] MakePie(int n)
{
double pi = Math.PI;
char newPi = Convert.ToChar(pi);
char[] newArray = new char[n];
newArray[0] = newPi;
int numbers = Convert.ToInt32(pi);
for (int i = 0; i < n; i++)
{
}
return newArray;
}
. 解决方案
试试:它也会摆脱十进制。
public static int[] MakePie(int n)
{
double pi = Math.PI;
var str = pi.ToString().Remove(1, 1);
var chararray = str.ToCharArray();
var numbers = new int[n];
for (int i = 0; i < n; i++)
{
numbers[i] = int.Parse(chararray[i].ToString());
}
return numbers;
}
. 其他提示
编辑以返回int int
var res = pi.ToString().Where(x => x != '.').Take(n).Select(x => (int)char.GetNumericValue(x)).ToArray();
. 这里是一个不需要字符串转换的解决方案,因为您的最终目标是返回一个生成的reaticetagcode。
public int[] MakePie(int n){
double pi = Math.PI;
int[] result = new int[n];
for (int i = 0; i < n; i++) {
result[i] = (int) Math.Floor(pi);
pi -= result[i];
pi *= 10;
}
return result;
}
. private int[] getPiVal()
{
string pi = Math.PI + "";
int[] piarray = new int[3];
for (int i = 0; i < 3; i++)
{
piarray[i] = Convert.ToInt32(pi[i] + "");
}
return piarray;
}
. 我的策略是通过将PI乘以十大的PI来获取每个数字的每个数字,然后达到该数字MOD 10的结果。
public int[] MakePi(int n)
{
int[] result = new int[n];
for (int i = 0; i < n; i++)
{
result[i] = (int)(Math.PI * Math.Pow(10, i)) % 10;
}
return result;
}
. 不隶属于 StackOverflow