fork(1) download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class LogApp
  6. {
  7. public static Float scanFloat( Scanner in )
  8. {
  9.  
  10. return ( ( in.hasNextFloat() ) ? in.nextFloat() : null );
  11. }
  12.  
  13. public static void main( String[] args )
  14. {
  15.  
  16. // Объявление переменных k,p,s,n типа float для хранения входных данных
  17. float k = 0;
  18. float p = 0;
  19. float s = 0;
  20. float n = 0;
  21.  
  22. Scanner in = new Scanner(System.in);
  23.  
  24. // Ввод пользователем значений переменных k,p,s,n с помощью scanf
  25. System.out.println( "please enter k:\n" );
  26. k = scanFloat( in );
  27. System.out.println( "please enter p:\n" );
  28. p = scanFloat( in );
  29. System.out.println( "please enter s:\n" );
  30. s = scanFloat( in );
  31. System.out.println( "please enter n:\n" );
  32. n = scanFloat( in );
  33.  
  34. in.close();
  35.  
  36. // Вывод исходных данных
  37. System.out.printf("------------------------------------\n");
  38. System.out.printf("k = %f\n",k);
  39. System.out.printf("p = %f\n",p);
  40. System.out.printf("s = %f\n",s);
  41. System.out.printf("n = %f\n",n);
  42. System.out.printf("------------------------------------\n");
  43.  
  44. // Вычисление и вывод результата по формуле с предварительной проверкой значения p,
  45. // которое не должно равняться 1, так как находиться в формуле под логарифмом.
  46. if ( p == 1 )
  47. {
  48. System.out.printf("wrong input data: p = 1\n");
  49. }
  50. else
  51. {
  52. int result = 0;
  53.  
  54. if ( k >= p )
  55. {
  56. System.out.printf("! WARNING !, suspicious input data:output weight less or equal to the initial weight!\n");
  57. }
  58.  
  59. result = (int) ( Math.log10( ( n * s ) / k ) / Math.log10( p ) ); // приводим к целому числу сезонов.
  60.  
  61. if ( result < 1 )
  62. {
  63. System.out.printf("! ERROR ! Growing time is shorter than one season!\n");
  64. }
  65. else
  66. {
  67. System.out.printf("result is: %d\n", result);
  68. }
  69. }
  70.  
  71. System.out.printf("====================================\n");
  72. }
  73. }
Success #stdin #stdout 0.15s 321344KB
stdin
1 1 1 1 
stdout
please enter k:

please enter p:

please enter s:

please enter n:

------------------------------------
k = 1.000000
p = 1.000000
s = 1.000000
n = 1.000000
------------------------------------
wrong input data: p = 1
====================================