在我的AP计算机科学课上,我们正在进行算法分配。我们只能使用数据类型boolean
,double
和int
。我们不能将任何Javas类用于数据类型或它们的数学库(换句话说,我们必须从头开始构建所有内容)。我已经有了确定给定整数(length(int)
)的数字量的工作方法,以及计算功率(power(double base, int exponent)
)的数字。我相信那些我坚持使用的算法需要这些。算法描述如下:
编写一个方法findDigit(int num,int n),它返回给定右边的第n个数字 整数,其中n是正整数。例如, findDigit(30568,2)将返回6, findDigit(234,5)将返回0, findDigit(-4532,3)将返回5
我要使用字符串类,直到我意识到我不被允许。这必须仅使用数学运算来完成。如果你们中的一个人可以给我一个关于如何制作一个包含整数数字的数组的逻辑,我会很高兴从那里开始。我更喜欢逻辑而不是代码(所以我可以练习编写它),但是c ++或java中的代码也很好。
我有一些我认为可行的代码,但最终无法正常工作。如果你需要的话,我可以提供它。
提前致谢!
答案 0 :(得分:-2)
这是一些伪代码:
int findDigit(int num, int n) {
for (i = 0; i < n-1; i++) {
num = num / 10;
}
return num % 10;
}
答案 1 :(得分:-2)
我告诉你这个过程。这是代码(使用c#和.net框架库)
private int findDigit(int num, int n)
{
string result = string.Empty;
int unsigned = Math.Abs(num); //To get th absolute value of num
string str = unsigned.ToString();//Convert the (absolute value) to string
int index = str.Length - n; //Index of the desired digit
try
{
result = str.Substring(index, 1);
}
catch
{
result = "0";
}
int digit = Convert.ToInt32(result); //To Convert the result into int
return digit;
}