我的代码如下:(请各位帮我看看是哪里有问题啊,用eclipse编译没错,提示异常)
import javax.swing.JOptionPane;
import java.lang.Math;
public class TestSumDigits {
public static void main(String[] args){
String num = JOptionPane.showInputDialog(null,"Enter the number what you want:");
int number = Integer.parseInt(num);
int result = sumDigits(number);
String output = "the number is"+number+",and the sum is"+result+".";
JOptionPane.showMessageDialog(null,output);
}
public static int sumDigits(int n){
int m = n;
int sum = 0;
int count = 0;
while(n!=0){
n=n/10;
count++;
}
int[] number1 = new int[count];
int[] number2 = new int[count];
number1[0]=m;
number2[0]=m;
for(int i=1;i<=count;i++){
number1[i]=(int) (number2[i-1]%(Math.pow(10,i)));
number2[i]=(int) (number2[i-1]/(Math.pow(10, i)));
sum=sum + number1[i];
}
return sum;
}
}
import javax.swing.JOptionPane;
import java.lang.Math;
public class TestSumDigits {
public static void main(String[] args){
String num = JOptionPane.showInputDialog(null,"Enter the number what you want:");
int number = Integer.parseInt(num);
int result = sumDigits(number);
String output = "the number is"+number+",and the sum is"+result+".";
JOptionPane.showMessageDialog(null,output);
}
public static int sumDigits(int n){
int m = n;
int sum = 0;
int count = 0;
while(n!=0){
n=n/10;
count++;
}
int[] number1 = new int[count];
int[] number2 = new int[count];
number1[0]=m;
number2[0]=m;
for(int i=1;i<=count;i++){
number1[i]=(int) (number2[i-1]%(Math.pow(10,i)));
number2[i]=(int) (number2[i-1]/(Math.pow(10, i)));
sum=sum + number1[i];
}
return sum;
}
}
改为
for (int i = 1; i < count; i++)
number2[i]=(int) (number2[i-1]/(Math.pow(10, i)));
sum=sum + number1[i];
int m = n;
int sum = 0;
while (m!=0){
sum+=m%10;
m=m/10;
}
return sum;
}
public class TestSumDigits {
public static void main(String[] args) { String num = JOptionPane.showInputDialog(null,
"Enter the number what you want:");
int number = Integer.parseInt(num);
int result = sumDigits(number);
String output = "the number is" + number + ",and the sum is" + result
+ ".";
JOptionPane.showMessageDialog(null, output);
} public static int sumDigits(int n) {
int m = n;
int sum = 0;
int count = 0;
while (n != 0) {
sum = n % 10 + sum;
n = n / 10;
} return sum; }
}
import java.lang.Math;
public class TestSumDigits {
public static void main(String[] args){
String num = JOptionPane.showInputDialog(null,"Enter the number what you want:");
int number = Integer.parseInt(num);
int result = sumDigits(number);
String output = "the number is"+number+",and the sum is"+result+".";
JOptionPane.showMessageDialog(null,output);
}
public static int sumDigits(int n){
int m = n;
int sum = 0;
int count = 0;
while(n!=0){
n=n/10;
count++;
System.out.println("count="+count);
}
int[] number1 = new int[count];
int[] number2 = new int[count];
number1[0]=m;
System.out.println("number1[0]="+number1[0]);
number2[0]=m;
System.out.println("number2[0]="+number2[0]);
for(int i=1;i<count;i++){
number1[i]=(int) (number2[i-1]%10);
System.out.println("number1["+i+"]="+number1[i]);
number2[i]=(int) (number2[i-1]/10);
System.out.println("number2["+i+"]="+number2[i]);
sum=sum + number1[i];
System.out.println("sum="+sum);
}
return sum+number2[count-1];
}
}
当i=2,3,4……是,分母已经很大了,取余还 有什么效果啊!
import javax.swing.JOptionPane;
import java.lang.Math;
public class TestSumDigits {
public static void main(String[] args){
String num = JOptionPane.showInputDialog(null,"Enter the number what you want:");
int number = Integer.parseInt(num);
int result = sumDigits(number);
String output = "the number is"+number+",and the sum is"+result+".";
JOptionPane.showMessageDialog(null,output);
}
public static int sumDigits(int n){
int m = n;
int sum = 0;
int count = 0;
while(n!=0){
n=n/10;
count++;
}
int[] number1 = new int[count];
int[] number2 = new int[count];
number1[0]=m;
number2[0]=m;
for(int i=1;i<count;i++){
number1[i]=(int) (number2[i-1]%10);
number2[i]=(int) (number2[i-1]/10);
sum=sum + number1[i];
}
return sum+number2[count-1];
}
}
int sum = 0;
while(n > 0){
sum += n%10;
n = n/10;
}
return sum;
}