بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

خروجی دلخواه از الگوریتم من استخراج نمی شود.

مدیریت گفتگو
نورحسینی 13 سال پیش
آخرین تغییر: 11 سال پیش

با سلام و عرض ادب خدمت استاد عزیز و با تشکر از زحمات شما یک سوال

در پروژه زیر:

package noor.mahdi.apps;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class My1appActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

int i = 255;
for (int index = 1; index <= i; index++) {
if (i % index == 0) {
int j = 1;
Log.i("log", "number" + j + index);
j++;
}
}
}
}


چگونه باید عدد j را بدون اینکه دوباره 1 شود زیاد کرد؟
منظور اینه که میخام نتیجه به این صورت بشه که نمیشه:

 

number1 1
number2 3
number3 5
number4 15
number5 17

ممنون

نظرات

پاسخ‌ها 2

uncocoder 13 سال پیش

- وقتی دو عدد در کنار هم در یک String جمع میشن مثل j + index معنی درستی از خروجی نخواهند داشت.
2- مقدار j با استفاده از ++ اضافه شده اما هیچ اثری در خروجی نداره چرا که در حلقه for بعدی این مقدار مجدد تعریف و به 1 تبدیل میشه. توجه کنید که int j یک متغیر را تعریف می کنه در داخل بلاک مربوط به if معتبر هست و وجود داره. پس اگر بخواهید این متغیر در طول حلقه for مقادیرش اضافه بشه باید بالای حلقه for در در جاییکه i تعریف شده اضافه بشه.

لذا کد صحیح:

     @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

int i = 255;
int j = 1;
for (int index = 1; index <= i; index++) {
if (i % index == 0) {
Log.i("log", "number" + j + ": " + index);
j++;
}
}
}

نظرات

سعید 11 سال پیش

گفته که userpid تعریف نشده.

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .