שאלה בc#

שאלה בc#

היי ,
קיבלתי את השאלה הבאה כשיעורי בית.. אחרי ניסיונות רבים לא הצלחתי להגיע לפתרון....תהיתי אם מישהו יכול לעזור לי לפתור אותה..
תודה מראש,
קבלו מהמשתמש מספר טבעי ( n( והדפיסו n שורות כאשר כל שורה מורכבת מ- n מספרים
כדלקמן עבור (n=4 )
4 3 2 1 0
3 2 1 0 4
2 1 0 4 3
1 0 4 3 2
 

BravoMan

Active member
איפה נתקעת?

נשמח לעזור לך אם תספרי היכן בדיוק את מתקשה.

שימי לב אגב, שבדוגמה שלך כל שורה מורכבת מ-n+1 מספרים (5 כאשר n = 4) ולא מ-n כפי שנכתב בתרגיל.
 

nocgod

New member
זה גם נראה כמו ריבוע

שאפשר לקבל מלולאת פור שמדפיסה שורות בתוך לולאת פור שיורדת שורות כאשר ההדפסה עצמה היא מודול של 5
 
הצלחתי לכתוב את החלק הראשון של הריבוע

הצלחתי לכתוב את ההתחלה:
43210
3210
210
10

החלק השני של ההוספה של המספר המקורי אחרי האפס והירידה שלו באחד לא מצליח......
 
הצלחתי לכתוב את שני הלולאות שצריך...אבל אני

לא יודעת איך לשלב אותם מצורף הקוד..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int line, startLine;
int num1 = int.Parse(Console.ReadLine());
startLine = num1;
line = num1;

for (int i = num1; i > 0; i--)//get to the loops
{
for (int j = line; j >= 0; j--)//43210,3210,210,10
{
Console.Write(j);
}

line--;

Console.WriteLine();
startLine -= 2;

}//for main
for (int k = num1; k > 0; k--)//write the second triangle left insted right
{
for (int f = num1; f > k; f--)
{
Console.Write(f);
}
Console.WriteLine();
}
}//void
}//class
}//namespace
 

BravoMan

Active member
יש לך יותר מידי לולאות...

כתבת 4 לולאות, אבל התרגיל מצריך רק 2.
nocgod די נתן לך את הפתרון לסעיף הזה - להשתמש באופרטור מודולו על n + 1

המשתנים startLine ו-line מיותרים, היות וניתן להשתמש ב-i גם בתוך הלולאה הפנימית כדי לדעת את מספר השורה הנוכחית.

שימי לב שבסה"כ בכל שורה צריך להתחיל להדפיס את אותם מספרים רק עם סטייה של 1 בהשוואה לשורה הקודמת.
איזה מונה כבר יש לך שעולה ב-1 בכל פעם?
 
למעלה