Programing/Java
Java :: 근접한 정수 구하기(시그마, 팩토리얼, 제곱)
G0pher
2018. 9. 17. 20:18
입력값에 근접한 정수를 시그마, 팩토리얼, 제곱을 이용하여 구하는 프로그램.
code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import java.util.Scanner; public class Calc { Process ps; public static void main(String [] args) { Calc start = new Calc(); start.doit(); } void doit() { Scanner sc = new Scanner(System.in); int input; while (true) { System.out.printf("값을 넣으세요 : "); input = sc.nextInt(); if (input == 0) break; ps = new Process(input); print(); } } void print() { ps.sigma(); System.out.printf("Sigma_%-2d = %d\n", ps.k, ps.sum); ps.factorial(); System.out.printf("%7d! = %d\n", ps.k, ps.sum); ps.square(); System.out.printf("%3d**%-3d = %d\n", ps.k, ps.l, ps.sum); } } class Process { int k, l, num, sum; Process(int num) { this.num = num; } void sigma() { for (k = sum = 0; sum <= num; sum += ++k); sum -= k--; } void factorial() { sum = 1; for (k = 0; sum <= num; sum *= ++k); sum /= k--; } void square() { int k, l; sum=0; for (k = 2; k <= Math.sqrt(num); k++) { for (l = 0; Math.pow(k,l) <= num; l++); if (Math.pow(k,--l) > sum){ sum = (int) Math.pow(k,l); this.k = k; this.l = l; } } } } | cs |