פורסם 2011 באוקטובר 2114 שנים אני מנסה לפתור את השאלה הזו אבל לא ממש הצלחתי , מקווה שתוכלו לעזור לי בה.1. כתוב פעולה רקורסיבית המקבלת מספר שלם ומחזירה מספר שבו כל ספרה אי-זוגית תוחלף בספרה קטנה ממנה באחד.כלומר אם התוכנית מקבלת : 3378 אז היא תחזיר : 2268 (מקבלת: 3968 מחזירה: 2868 )מה שניסיתי בינתיים זה זה : אין ממש "כתובת קוד כזו כי אני לא יודע איך לשים כזה דבר אז העתקתי הכול :import java.util.*;public class halfsimilar { public static void main(String[] args){ Scanner reader = new Scanner(System.in); int num = 3378 ; System.out.println(peoola(num , 0)); } public static int peoola (int num , int digits){ if(num<10) { if(num%2==1) return (num-1) ; else return num ; } else { if((num%10)%2==1) return ((num%10)-1)*(digits*10) + peoola(num/10 , digits+1) ; else return ((num%10))*(digits*10) + peoola(num/10 , digits+12) ; }}
פורסם 2011 באוקטובר 2214 שנים public static void main(String[] args) { System.out.print("enter your number: "); Scanner sc = new Scanner(System.in); int number = sc.nextInt(); System.out.println("\n" + calculate(number)); } private static int calculate(int number) { if (number < 10) if (number % 2 == 0) return number; else return --number; else if (number % 2 == 0) return (number % 10) + 10 * (calculate(number / 10)); else return ((number % 10) - 1) + 10 * (calculate(number / 10)); }היית בכיוון עם לבודד את ספרת האחדות זה היה הטריק בשאלה, תרגיל נחמד,אם תחליף את המספר 10 במשתנה base תקבל פתרון כללי ולא רק לבסיס 10
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.