Member 14584094 Ответов: 1

Программа Смита числа в Java с использованием буферизованного чтения


это программа smith number и я получаю ошибку в void accept ureported exception in java.io должен быть пойман или объявлен брошенным

Что я уже пробовал:

import java.io.*;
class smith
{
    int num;int sum;
    smith()
    {
        num=0;
        sum=0;
    }
    void accept ()throws IOException
    {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    num=Integer.parseInt(in.readLine());
}
int sumdigit(int x)
{
    int s=0;
    while(x!=0)
    {
        int d=x%10;
        s=s+d;
        x=x%10;
    }
    return s;
}
void check()
{
    int r=sumdigit(num);
    int i=2;
    while(num>1)
    {
        if (num%i==0)
        {
            sum=sum+sumdigit(i);
            num=num/i;
        }
        else
        {
            i++;
        }
    }
    if(sum==r)
    System.out.println("number is a smith number");
    else
    System.out.println("number is not a smith number");
}
void main()
{
    smith obj=new smith();
    obj.accept ();
    obj.check();
}
}

1 Ответов

Рейтинг:
2

Richard MacCutchan

num=Integer.parseInt(in.readLine()); // this can throw an exception, see below.

Integer (Java Platform SE 8 )[^]