Advertisement
Guest User

разбиение на слагаемые по номеру

a guest
Dec 16th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.util.Scanner;
  5.  
  6. public class dm3_task_21 {
  7.  
  8. public static void main(String[] args) throws IOException {
  9. Scanner sc = new Scanner(new File("num2part.in"));
  10. PrintWriter printWr = new PrintWriter(new File("num2part.out"));
  11. //Scanner sc = new Scanner(System.in);
  12. int digit = sc.nextInt();
  13. int numOfPart = sc.nextInt();
  14. sc.close();
  15. int[] part = new int[digit];
  16. int[] tempSum = new int[digit];
  17. for (int i = 0; i < digit; i++) {
  18. part[i] = 1;
  19. tempSum[i] = i + 1;
  20. }
  21. int len = digit - 1;
  22. while (numOfPart > 0) {
  23. numOfPart--;
  24. do {
  25. if (tempSum[len] < digit) {
  26. part[len]++;
  27. tempSum[len]++;
  28. } else {
  29. len--;
  30. part[len]++;
  31. tempSum[len]++;
  32. int i = len + 1;
  33. while (tempSum[i - 1] + part[len] <= digit) {
  34. tempSum[i] = tempSum[i - 1] + part[len];
  35. part[i] = part[len];
  36. i++;
  37. }
  38. len = i - 1;
  39. }
  40. } while (tempSum[len] != digit);
  41. }
  42. for (int i = 0; i < len + 1; i++) {
  43. printWr.print(part[i]);
  44. //System.out.print(part[i]);
  45. if (i != len) {
  46. printWr.print("+");
  47. //System.out.print("+");
  48. }
  49. }
  50. printWr.close();
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement