You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							63 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							63 lines
						
					
					
						
							1.3 KiB
						
					
					
				| "use strict"; | |
|  | |
| function main(formName) { | |
| 	let result = document.getElementById("result"); | |
| 	 | |
| 	let a = document.forms[formName].elements[0].value; | |
| 	if (isNotNumber(a)) { | |
| 		result.textContent = "Ошибка: a не является числом!"; | |
| 		return; | |
| 	} else { | |
| 		a = Number(a); | |
| 	} | |
|  | |
| 	let b = document.forms[formName].elements[1].value; | |
| 	if (isNotNumber(b)) { | |
| 		result.textContent = "Ошибка: b не является числом!"; | |
| 		return; | |
| 	} else { | |
| 		b = Number(b); | |
| 	} | |
|  | |
| 	if (a > b) { | |
| 		result.textContent = "Ошибка: a не может быть больше b"; | |
| 		return; | |
| 	} | |
|  | |
| 	result.textContent = "Результат: " + countPalindrome(a, b); | |
| } | |
|  | |
| function countPalindrome(a, b) { | |
| 	let result = 0; | |
|  | |
| 	let gen = makeRangeIterator(a, b); | |
| 	for (let num of gen) { | |
| 		if (isPalindrome(num)) { | |
| 			result++; | |
| 		} | |
| 	} | |
|  | |
| 	return result; | |
| } | |
|  | |
| function isPalindrome(num) { | |
| 	let strNumber = num.toString(); | |
| 	for (let i = 0; i <= strNumber.length / 2; i++) { | |
| 		let lastIndex = strNumber.length - 1 -i; | |
| 		if (strNumber[i] != strNumber[lastIndex]) { | |
| 			return false; | |
| 		} | |
| 	} | |
| 	return true; | |
| } | |
|  | |
| function isNotNumber(val) { | |
| 	return val.replace(/\s/g, '').length === 0 || isNaN(val); | |
| } | |
|  | |
| function* makeRangeIterator(start, end) { | |
|     for (let i = start; i < end; i++) { | |
|         yield i; | |
|     } | |
|     return end; | |
| } |