我设法让我的代码将大多数罗马数字转换为适当的十进制值.但它不适用于某些特殊情况.示例:XCIX= 99但我的代码打印出来109.
这是我的代码.
public static int romanConvert(String roman)
{
int decimal = 0;
String romanNumeral = roman.toUpperCase();
for(int x = 0;x<romanNumeral.length();x++)
{
char convertToDecimal = roman.charAt(x);
switch (convertToDecimal)
{
case 'M':
decimal += 1000;
break;
case 'D':
decimal += 500;
break;
case 'C':
decimal += 100;
break;
case 'L':
decimal += 50;
break;
case 'X':
decimal += 10;
break;
case 'V':
decimal += 5;
break;
case 'I':
decimal += 1;
break;
}
}
if (romanNumeral.contains("IV")) …Run Code Online (Sandbox Code Playgroud) 有谁知道如何将数字四舍五入到最接近的5的倍数?我发现了一个算法将它四舍五入到最近的10的倍数,但我找不到这个.
这样做十分.
double number = Math.round((len + 5)/ 10.0) * 10.0;
Run Code Online (Sandbox Code Playgroud) 有谁知道如何在Windows 7上运行/编译Ruby程序?例如,您可以在Eclipse中编译Java,但我似乎无法为Ruby找到一个.
除了字母字符,数字和下划线之外,Python函数名中是否还有其他允许的字符?如果是的话,他们是什么?
到目前为止,我一直在使用Scanner对象接收输入,并想了解BufferedReader的工作原理.我试过了,它似乎只适用于Strings.有人可以告诉我如何使用它与int和double?并且你如何在同一行上要求两个String输入?谢谢.
我写了这段代码来计算组合数:
def fact(n):
return 1 if(n == 1) else n * fact(n - 1)
def combinations(n,k):
return fact(n)/((fact(n - k) * fact(k)))
while(True):
print(combinations(int(input()), int(input())))
Run Code Online (Sandbox Code Playgroud)
阶乘函数似乎工作正常。但是为什么当我尝试找到两个数字的组合时,它会给我一个最大递归深度超过比较错误?阶乘函数是否有问题,因为这似乎是错误的来源?
这是我得到的错误:
builtins.RuntimeError:相比之下超出了最大递归深度
例如,假设我有一堆这样的赋值语句:
if operator == '==':
if a == b:
c += 5
elif operator == '>':
if a > b:
c += 5
elif operator == '<':
if a < b:
c += 5
Run Code Online (Sandbox Code Playgroud)
我给出的if嵌套if语句和赋值只是例子,但在我写的程序中,它们真的很长.只是在操作员不同的地方出现了一个小小的变化,所以我不想在所有这些条件下一遍又一遍地重复相同的长代码.有太多的条件,代码将重复多次..那么有一个"更快"的方法来做到这一点?我可以将字符串定义为运算符吗?还是更好的方法?
我正在编写这个Java程序,它找到给定范围之间的所有素数.因为我正在处理非常大的数字,我的代码似乎不够快,并给我一个时间错误.这是我的代码,有谁知道让它更快?谢谢.
import java.util.*;
public class primes2
{
private static Scanner streamReader = new Scanner(System.in);
public static void main(String[] args)
{
int xrange = streamReader.nextInt();
int zrange = streamReader.nextInt();
for (int checks = xrange; checks <= zrange; checks++)
{
boolean[] checkForPrime = Primes(1000000);
if (checkForPrime[checks])
{
System.out.println(checks);
}
}
}
public static boolean[] Primes(int n)
{
boolean[] isPrime = new boolean[n + 1];
if (n >= 2)
isPrime[2] = true;
for (int i = 3; i <= n; i += 2) …Run Code Online (Sandbox Code Playgroud) 假设我有一个字典:
my_dict = {1:[1,2,3],4:[5,6,7],8:[9,10,11]}
Run Code Online (Sandbox Code Playgroud)
我想能够打印它看起来像:
1 4 8
1 5 9
2 6 10
3 7 11
Run Code Online (Sandbox Code Playgroud)
我实际上正在处理更大的字典,如果我能看到它们的外观会很好,因为我只是说它们很难阅读 print(my_dict)
java ×4
python ×4
combinations ×1
compilation ×1
dictionary ×1
factorial ×1
formatting ×1
function ×1
operators ×1
performance ×1
pretty-print ×1
primes ×1
recursion ×1
repeat ×1
rounding ×1
ruby ×1
windows-7 ×1