Java 项目17未知问题
我刚刚完成的代码,发现我的代码不正确。我找不到代码不起作用的地方。输出一个数字,但在检查答案后,该数字太高。我找不到哪里把代码弄乱了。我感谢你的帮助Java 项目17未知问题,java,Java,我刚刚完成的代码,发现我的代码不正确。我找不到代码不起作用的地方。输出一个数字,但在检查答案后,该数字太高。我找不到哪里把代码弄乱了。我感谢你的帮助 public class Euler17 { public static void main(String[] args) { int total = 0; for(int i = 1; i <= 1000; i++ ) { total += letters(i); Syst
public class Euler17
{
public static void main(String[] args)
{
int total = 0;
for(int i = 1; i <= 1000; i++ )
{
total += letters(i);
System.out.println(i + " " + letters(i));
}
System.out.print(total);
}
public static int letters(int i)
{
if(i >= 1 && i <= 99)
{
return tens(i);
}
if(i % 100 == 0 && i != 1000)
{
return (tens(i / 100) + 7);
}
if(i != 1000)
{
return hundreds(i);
}
if(i == 1000)
{
return 11;
}
else
{
return - 1;
}
}
public static int hundreds(int i)
{
int h;
int t;
t = i % 100;
h = (i - t) / 100;
return ones(h) + 10 + tens(t);
}
public static int tens(int i)
{
// int t = 0;
int o;
o = i % 10;
// t = (i - o) / 10;
// find value of i and split into tens and ones
switch(i)
{
case 1:
return 3;
case 2:
return 3;
case 3:
return 5;
case 4:
return 4;
case 5:
return 4;
case 6:
return 3;
case 7:
return 5;
case 8:
return 5;
case 9:
return 4;
case 10:
return 3;
case 11:
return 6;
case 12:
return 6;
case 13:
return 8;
case 14:
return 8;
case 15:
return 7;
case 16:
return 7;
case 17:
return 9;
case 18:
return 8;
case 19:
return 8;
}
if(i >= 20 && i <= 29)
{
return 6 + ones(o);
}
if(i >= 30 && i <= 39)
{
return 6 + ones(o);
}
if(i >= 40 && i <= 49)
{
return 6 + ones(o);
}
if(i >= 50 && i <= 59)
{
return 5 + ones(o);
}
if(i >= 60 && i <= 69)
{
return 5 + ones(o);
}
if(i >= 70 && i <= 79)
{
return 7 + ones(o);
}
if(i >= 80 && i <= 89)
{
return 6 + ones(o);
}
if(i >= 90 && i <= 99)
{
return 6 + ones(o);
}
return i;
}
public static int ones(int i)
{
switch(i)
{
case 1:
return 3;
case 2:
return 3;
case 3:
return 5;
case 4:
return 4;
case 5:
return 4;
case 6:
return 3;
case 7:
return 5;
case 8:
return 5;
case 9:
return 4;
case 0:
return 0;
}
return i;
}
}
公共类Euler17
{
公共静态void main(字符串[]args)
{
int-total=0;
对于(int i=1;i=1&&i=20&&i=30&&i=40&&i=50&&i=60&&i=70&&i=80&&i=90&&iif(i>=40&&iif(i>=40&&i)
if(i >= 40 && i <= 49)
{
return 6 + ones(o);
}