 
			
				20.04.2017, 21:53
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от KEMPZOR
			
		
	 | 
 
	| 
		 число было кратно 5,
	 | 
 
	
 
 30 разве не кратно 5?
 
	
 
	| 
		
			Сообщение от KEMPZOR
			
		
	 | 
 
	| 
		То есть (30 = 25 + 5) (20=15 + 5) (10= 5+5)
	 | 
 
	
 
  не осилил это, не понимаю, что вы этим хотите сказать.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				20.04.2017, 22:19
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2016 
					
					
					
						Сообщений: 85
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		30 разве не кратно 5? 
 не осилил это, не понимаю, что вы этим хотите сказать.
	 | 
 
	
 
 Приехал домой, покушал, собрался с мыслями, вроде получилось, посмотрите на мою реализацию, подскажите как сделать теперь с 1000, получается везде 35.
 https://jsfiddle.net/KEMPZOR/64nnq1p9/ 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				20.04.2017, 22:41
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от KEMPZOR
			
		
	 | 
 
	| 
		подскажите как сделать теперь с 1000
	 | 
 
	
 
   знать бы ещё что вы хотите сделать?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.04.2017, 10:23
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2016 
					
					
					
						Сообщений: 85
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		  знать бы ещё что вы хотите сделать?
	 | 
 
	
 
 Если ставим 1000 на 6, должно получиться  
1 - 35 
2 - 35 
3 - 35 
4 - 35 
5 - 35 
6 - 825
 
Последний такой должен быть 825.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось KEMPZOR, 26.04.2017 в 10:28.
				Причина: С 1000 тоже не так, правильно будет вот так.
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.04.2017, 11:01
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 KEMPZOR, 
 алгоритм формирования чисел так и не понял, помочь не могу. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.04.2017, 02:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2016 
					
					
					
						Сообщений: 85
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		KEMPZOR, 
 алгоритм формирования чисел так и не понял, помочь не могу.
	 | 
 
	
 
 Извините Рони, на примере 100 на 6 месяцев я ввёл Вас в заблуждение, правильно будет вот так: 
0 - 50 
1 - 50 
2 - 0 
3 - 0 
4 - 0 
5 - 0 
6 - 0
 
0 - Это первый платёж, остальные по месяцам.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось KEMPZOR, 26.04.2017 в 10:27.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.04.2017, 11:13
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2016 
					
					
					
						Сообщений: 85
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		  знать бы ещё что вы хотите сделать?
	 | 
 
	
 
 Если 1000 на 6 мес, то правильно будет так.
 
0 - 160 
1 - 160 
2 - 160 
3 - 160 
4 - 160 
5 - 160 
6 - 40
 
Почему 160 и 40 ? 
1000/6=166.6667 
Наименьшее кратное будет 165. 
165*6 = 990  
1000-990=10 последний платёж (не менее 35), значит не подходит, уменьшаем ещё на 5. 
160*6 = 960 
1000-960=40 последний платёж (не менее 35), значит подходит.
 
Помогите пожалуйста решить задачку, за мной не заржавеет (заплачу денежку).  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось KEMPZOR, 26.04.2017 в 11:50.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.04.2017, 17:38
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.11.2015 
					
					
					
						Сообщений: 2,899
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
Сумма (кратная 5, не меньше 35):<input id="sum" type = "text" value = "1000"><br>
<input type="button" value="Считать" onclick = "calc();"><br>
<div id = "result"></div>
<script>
function calc() {
   var summa = +sum.value, period = 6;
   if(summa < 35 || Math.floor(summa / 5) * 5 != summa) {
       alert("Сумма должна быть кратной 5, не меньше 35");
       result.innerHTML = "";
       return;
   }
   var tempPay, currentPay, lastPay;
   tempPay = summa / period;
   currentPay = Math.floor(tempPay / 5) * 5;
   if (currentPay < 35) currentPay = 35;
   period = Math.round(summa / currentPay);
   currentPay = currentPay + 5;
   do {
      currentPay = currentPay - 5;
      lastPay = summa - currentPay * period; 
   } while ( lastPay < 35 && lastPay != 0);
   if (currentPay < 35) { currentPay = 30; 
      do {
          currentPay = currentPay + 5;
          period = Math.floor(summa / currentPay);
          lastPay = summa - currentPay * period; 
      } while (lastPay != 0 && lastPay < 35);
   }
   result.innerHTML = "";
   for (var i = 0; i < period; i++) {
   result.innerHTML +=  i + " - " + currentPay + "<br>";
   }
   result.innerHTML += i  + " - " + lastPay + "<br>";
}
</script>
Насчет денежки - пускай себе ржавеет, лучше пусти эти средства на изучение арифметики  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Dilettante_Pro, 26.04.2017 в 18:04.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.04.2017, 16:55
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2016 
					
					
					
						Сообщений: 85
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Dilettante_Pro
			 
		
	 | 
 
	
		
Сумма (кратная 5, не меньше 35):<input id="sum" type = "text" value = "1000"><br>
<input type="button" value="Считать" onclick = "calc();"><br>
<div id = "result"></div>
<script>
function calc() {
   var summa = +sum.value, period = 6;
   if(summa < 35 || Math.floor(summa / 5) * 5 != summa) {
       alert("Сумма должна быть кратной 5, не меньше 35");
       result.innerHTML = "";
       return;
   }
   var tempPay, currentPay, lastPay;
   tempPay = summa / period;
   currentPay = Math.floor(tempPay / 5) * 5;
   if (currentPay < 35) currentPay = 35;
   period = Math.round(summa / currentPay);
   currentPay = currentPay + 5;
   do {
      currentPay = currentPay - 5;
      lastPay = summa - currentPay * period; 
   } while ( lastPay < 35 && lastPay != 0);
   if (currentPay < 35) { currentPay = 30; 
      do {
          currentPay = currentPay + 5;
          period = Math.floor(summa / currentPay);
          lastPay = summa - currentPay * period; 
      } while (lastPay != 0 && lastPay < 35);
   }
   result.innerHTML = "";
   for (var i = 0; i < period; i++) {
   result.innerHTML +=  i + " - " + currentPay + "<br>";
   }
   result.innerHTML += i  + " - " + lastPay + "<br>";
}
</script>
 
Насчет денежки - пускай себе ржавеет, лучше пусти эти средства на изучение арифметики
	 | 
 
	
 
 Сделал под свой лад, всё работает как надо, единственное что не получается, это меньше чем 244 некоторые числа не правильно считает, например 100. 
 
<script type="text/javascript" src="http://l-c.by/g/libs/jquery/1.10.2/jquery.min.js"
<p>Сумма</p>
<input id="sum" type = "text" value = "">
<p>Месяц</p>
      <select class="select-month" name="month">
        <option value="2">1</option>
        <option value="3">2</option>
        <option value="4">3</option>
        <option value="5">4</option>
        <option value="6">5</option>
        <option value="7">6</option>
      </select>
<input type="button" value="Считать" onclick = "calc();"><br>
<div id = "result"></div>
function calc() {
   var summa = +sum.value.replace(",", "."), period = parseInt($("select[name=month]").val()) , selperiod = period;
   if(summa < 35) {
       alert("Сумма должна быть кратной 5, не меньше 35");
       result.innerHTML = "";
       return;
   }
   var tempPay, currentPay, lastPay;
   tempPay = summa / period;
   /*if (summa <= 244) { tempPay = summa / 35; }*/
   currentPay = Math.floor(tempPay / 5) * 5;
   if (currentPay < 35) currentPay = 35;
   currentPay = currentPay + 5;
   do {
      currentPay = currentPay - 5;
      lastPay = summa - currentPay * (period-1); 
   } while ( lastPay < 35 && lastPay != 0);
   if (currentPay < 35) { currentPay = 30; 
      do {
          currentPay = currentPay + 5;
          period = Math.round(summa / currentPay);
          lastPay = summa - currentPay * period; 
      } while (lastPay != 0 && lastPay < 35);
   }
   result.innerHTML = "";
   
   for (var i = 0; i < period-1; i++) {
   result.innerHTML +=  i + " - " + currentPay + "<br>";
   }
   result.innerHTML += i  + " - " + lastPay.toFixed(2) + "<br>";
   
}
P.S. Арифметику подтяну, обещаю )))  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.04.2017, 17:18
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.11.2015 
					
					
					
						Сообщений: 2,899
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		KEMPZOR,
  
	
 
	| 
		
			Сообщение от KEMPZOR
			
		
	 | 
 
	| 
		 меньше чем 244 некоторые числа не правильно считает, например 100.
	 | 
 
	
 
 100 неправильно считается? 
0 - 50 
1 - 50 
2 - 0   - это неправильно? 
Еще какие неправильно?
 
Это условие соблюдается? Сумма должна быть кратной 5, не меньше 35
 
Или суммы бывают произвольные? Я это не предусматривал - платежи по месяцам кратные 5. 
Правда, попробовал, снял ограничение по кратности 5 - все считается правильно, даже с копейками. Ошибок не увидел.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Dilettante_Pro, 27.04.2017 в 17:33.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |