ブルーブリッジカップ基礎練習特殊回文数java
1174 ワード
レコードアルゴリズム点滴
基礎練習特殊回文数
タイトルの説明
123321は非常に特殊な数で、左から読むのと右から読むのと同じです.
正の整数nを入力し、プログラムはこのような5桁と6桁の10進数をすべて求め、各数字の和がnに等しいことを満たす.
入力
説明を入力:
正の整数nを含む行を入力します.
サンプルを入力:
52
しゅつりょく
出力の説明:
条件を満たす整数を小さい順に出力し、各整数が1行を占める.
出力サンプル:
899998
989989
998899
ヒント
HINT:時間制限:1.0 sメモリ制限:512.0 MB
1<=n<=54.
考え方:
タイトルは5桁と6桁の10進数を要求するので、forループ10000から1000000の間の数が回文を満たし、各桁数の和がnに等しいかどうかだけを必要とするので、この2つの条件を表現するために2つの関数を書いた.f()は,回文であるか否かを判断し,主に文字列の長さの半分を遍歴すればよいが,回文は本来対称であり,is()は各ビット数とnであるか否かを判断する.
基礎練習特殊回文数
タイトルの説明
123321は非常に特殊な数で、左から読むのと右から読むのと同じです.
正の整数nを入力し、プログラムはこのような5桁と6桁の10進数をすべて求め、各数字の和がnに等しいことを満たす.
入力
説明を入力:
正の整数nを含む行を入力します.
サンプルを入力:
52
しゅつりょく
出力の説明:
条件を満たす整数を小さい順に出力し、各整数が1行を占める.
出力サンプル:
899998
989989
998899
ヒント
HINT:時間制限:1.0 sメモリ制限:512.0 MB
1<=n<=54.
考え方:
タイトルは5桁と6桁の10進数を要求するので、forループ10000から1000000の間の数が回文を満たし、各桁数の和がnに等しいかどうかだけを必要とするので、この2つの条件を表現するために2つの関数を書いた.f()は,回文であるか否かを判断し,主に文字列の長さの半分を遍歴すればよいが,回文は本来対称であり,is()は各ビット数とnであるか否かを判断する.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for(int i=10000;i<1000000;i++)
{
if(f(i) && is(i,n))
System.out.println(i);
}
}
static boolean f(int x)
{
String s=x+"";
for(int i=0;i0)
{
k+=x%10;
x/=10;
}
if(k==n)
return true;
else
return false;
}
}