जावा में copyEven के बारे में प्रश्न
प्रश्न इस प्रकार है:
जावा विधि लिखिए जो int[] copyEven(int[] nums)नए सरणी के लिए सूचकांकों पर भी तत्वों को कॉपी करती है।
यह उन तत्वों के साथ सही लंबाई के नए सरणी को वापस करना होगा।
उदाहरण के लिए
copyEven([1, 2, 3]) → [1, 3]
copyEven([1, 2, 3, 4]) → [1, 3]
नीचे मेरा कोड है:
public static int [] copyEven(int[] nums){
int n =nums.length;
int a=0;
for (int i=0;i<n;i++){
if (nums[i]%2 !=0){
a++;
}
int c=a;
int [] arr=new int[c];
int b=0;
for (int j=0;b<a;j++){
if (nums[j]%2 !=0){
arr[b]=nums[j];
b++;}
}
}
return arr;
}
मैं कोड पर एक शुरुआत कर रहा हूं, और यह मेरा पहली बार इस वेबसाइट का उपयोग कर रहा है। मैंने ऑनलाइन खोज की और पाया कि इसी तरह के प्रश्नों में, विषम संख्याओं की संख्या प्रदान की गई है। इस प्रकार, मैं aपहली बार में विषम संख्याओं की संख्या की गणना करने के लिए कोड में उपयोग करने की योजना बना रहा हूं , फिर प्रश्न को समाप्त करने के लिए एक नया सरणी बनाता हूं । हालाँकि, NetBeans ने मुझे बताया कि में int [] arr=new int[c], सरणी को लिखा गया है, से कभी नहीं पढ़ा। मुझे समझ नहीं आ रहा है कि इसका क्या मतलब है। अगर आप मेरी मदद कर सकते हैं तो मैं इसकी बहुत सराहना करूंगा, धन्यवाद!
जवाब
यहां आप सभी तत्वों को सूचकांकों पर भी प्राप्त कर सकते हैं।
आपके दिए गए उदाहरणों के अनुसार इंडेक्सिंग 1 से शुरू हुई।
public static int[] copyEven(int[] nums) {
int length = nums.length;
int numberOfEvenNumbers = (length % 2 == 0) ? length / 2 : length / 2 + 1;
int[] copy = new int[numberOfEvenNumbers];
int index = 0;
for (int i = 0; i < nums.length; i += 2) {
copy[index] = nums[i];
index++;
}
return copy;
}