Пояснение към задача номер 9
Здравейте колеги,
Някой може ли да хвърли малко повече яснота относно задача номер 9 от първото домашно? Ако може да покаже някакво решение + разяснение към него.
Здравейте колеги,
Някой може ли да хвърли малко повече яснота относно задача номер 9 от първото домашно? Ако може да покаже някакво решение + разяснение към него.
for (int index = 2; index <= 10; index++)
{
if (index % 2 == 0)
{
Console.WriteLine(index);
}
else
{
Console.WriteLine(-index);
}
}
Пускаш цикъл с начална стойност 2(int index = 2), до крайна стойност 10 както е в условието. Вътре в цикъла правиш проверка за да определиш на кои цифри да сложиш "-". Ако index се дели на 2 без остатък (всяко число разделено на друго при което резултата е 0) цифрата се изписва без "-". И ако index се дели на 2 с остатък(всяко число разделено на друго при което резултата не е 0) знакът пред цифрата е "-".
Ако има остатък е нечетно, и ако няма четно. В задачата четните са без "-", а нечетните са с "-".
Трябва да изпишеш 10те елемента от редицата.
Съответно тя би изглеждала в пълния си вид така:
2, -3, 4, -5, 6, -7, 8, -9, 10, -11
Единият вариант е да ги печаташ едно по едно, използвайки Console.WriteLine() (или Console.Write() в зависимост как искаш да ти бъде форматиран изхода):
Console.WriteLine(2);
Console.WriteLine(-3);
Console.WriteLine(4);
Console.WriteLine(-5);
Console.WriteLine(6);
Console.WriteLine(-7);
Console.WriteLine(8);
Console.WriteLine(-9);
Console.WriteLine(10);
Console.WriteLine(-11);
Другият вариант е с for цикъл и проверка за четност:
for(int i = 2; i<=11 ;i++) // Минаваме през числата от 2 до 11
{
if(i%2==0) Console.WriteLine(i); // проверяваме дали числото е четно, ако да го печатаме
else Console.WriteLine(i*-1); // ако не е - печатаме числото умножено по -1
}
int positiveMember = 0;
int negativeMember = -1;
for (int i = 0; i <= 3; i++)
{
Console.Write((positiveMember += 2) + ", ");
Console.Write((negativeMember -= 2) + ", ");
}
Console.Write((positiveMember += 2) + ", ");
Console.Write(negativeMember -= 2);
Console.WriteLine();
Console.WriteLine();
//2
int StartOne = 2;
int StartTwo = -3;
while ((StartOne <= 10) && (StartTwo > -11))
{
Console.Write(StartOne + ", ");
Console.Write(StartTwo + ", ");
StartOne = StartOne + 2;
StartTwo = StartTwo - 2;
}
Console.Write(10 + ", ");
Console.Write(-11);
Console.WriteLine();
//3
for (int i = 2; i < 11; i++)
{
Console.Write((i % 2 == 0 ? i : -i) + ", ");
}
Console.WriteLine(-11);
//4
for (int i = 2; i <= 11; i++)
{
if (i % 2 == 0)
{
Console.Write(i + ", ");
}
else
{
if (i == 11)
{
Console.WriteLine(-i);
break;
}
Console.Write(-i + ", ");
}
}
зА 16 ЗАДАЧА САМО ТРЯБВА ДА СМЕНИШ 10 СЪС 1000 - ИМА ТЕМА ЗА НЕЯ
Здравей! Аз лично съм използвал следния код
Console.Write("Enter date of birth mm/dd/yyyy:");
DateTime birthDay = DateTime.Parse(Console.ReadLine());
TimeSpan difference = DateTime.Now.Subtract(birthDay);
Console.WriteLine("Now you are {0} years old.",difference.Days/365);
Console.WriteLine("In 10 years you will be {0}!",(difference.Days/365)+10);
TimeSpan метода представлява интервал във времет. DateTime.Now е времето на момента,а Subtract означава изваждане. И понеже измерването е във дни разделям difference(разликата) на 365 за да получа отговор като години. Ако има нещо неясно питай :)
Здравей,
Ето го и моя вариант - ползвам while цикъл, като решението е валидно и за 16 задача - само трябва да смениш условието в скобите на while на: (counter<=500)
static void Main(string[] args)
{
int counter = 1;
int NegNumbers = -3;
int PosNumbers = 2;
int Adder = 2;
Здравей,
Задачата е следната. Трябва да изведеш на конзолата описаната поредица от числа.
Вижда се, че те са последователни от 2 до 11 (включително).
Използвам да ги разделя на четни и не четни числа.
Според признака за делимост на 2 числтата, които се делят на 2, се наричат четни, а числата, които не се делят на две, се наричат нечетни.
Също може да се каже, че на 2 се делят само тези числа, на които последната цифра означава четно число.
Всяко число, което завършва на 0 се дели на 2 и е четно.
Четно число е и нулата.
Като използвам признака за делимост си реших задачата, ето така: http://pastebin.com/wda5wDLT .
Надявам се да съм бил полезен :)
Здравейте,
Ето и моят принос към задачата
Между другото, като off-topic, ето линк за това ка да синхронизирате кода си с GitHub директно през VisualStudio.
Сега, относно задачата:
/* =============================
* Problem 9. Print a Sequence
* =============================
*
* Write a program that prints the first 10 members of the sequence: 2, -3, 4, -5, 6, -7
*/
using System;
class Print_Sequence
{
static void Main()
{
for (int i = 2; i <= 11; i++)
{
if (i % 2 == 0)
{
Console.Write(i);
}
else
{
Console.Write(-i);
}
Console.Write(", ");
}
Console.WriteLine();
}
}
Кодът е почти еднакъв с вече споделените, но реших да печатам на един ред и със запетайки, т.е. вместо Console.WriteLine, използвам Console.Write, и преди да върна цикъла в началото печатам запетайка и интервал, за да се получи всичко на една линия и най-важното, да е четимо.
След като извъртя целия цикъл печатам празен Console.WriteLine извън цикъла, за да не се появява "Pres any keyo to continue or any other key to exit..." на същия ред с изхода на програмата.
int start = 2;
int end = 10;
for (int i = start; i < end + start; i++)
{
if (i % 2 == 0)
{
Console.WriteLine(i);
}
else
{
Console.WriteLine(i * -1);
}
}
Console.ReadLine();
Задачата е същата като 16-та само че заместваме end да не е 10 а 1000 и работи по същия начин Console.ReadLine() е за да изчака да се прочете.
Здрасти,
Аз го мъча в момента. Прогресиите винаги са ми били много неясни, но гледам това клипче точно в момента:
https://www.youtube.com/watch?v=lj_X9JVSF8k
Според мен трябва да направиш някаква формула. Вече с output-a на числата трябва малко повече ровене, но според мен е елементарно само да го намеря :D
Като гледам съм използвала съвсем различен подход от тук цитираните, използваики Матh, без условие
http://pastebin.com/Li5P1Hh5
мисля, че и така става
Идеята е да се умножава всеки член от редицата по (-1) на четна или нечетна степен.