+ 2

Why does sum hasn't been initialized to 0 during every time when it calling itself,by the way, what does static means in here?

using System; using System.Collections.Generic; namespace SoloLearn { class Program { static int Counter(ref int x) { int sum = 0; sum += x; if (x == 1) { return sum; } else { x = x - 1; return sum+Counter(ref x); } } static void Main(string[] args) { int a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(Counter( ref a)); } } }

10th Feb 2021, 8:06 PM
Yasswecancn
Yasswecancn - avatar
4 Antworten
+ 2
Yasswecancn Program is working fine. What you expect here? sum is initialise with 0 but you assigned again x to sum. So sum will have some value.
10th Feb 2021, 8:31 PM
A͢J
A͢J - avatar
0
Yes,but shouldn't sum be ing initialized when I calling it at start of next Loop/iteration?
10th Feb 2021, 10:21 PM
Yasswecancn
Yasswecancn - avatar
0
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SoloLearn { class Program { static void Main(string[] args) { int number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(Sum( ref number)); } static int Sum( ref int num) { int sum = 0; sum += num; if (num == 0) { Console.WriteLine(sum); return sum; } num--; return sum + Sum( ref num); //complete the recursive method } } }
24th Feb 2021, 1:11 AM
Yasswecancn
Yasswecancn - avatar
0
Here is a similar code I've been dealing with. It has the same algorithm, but I still didn't get it because how could sum in the WriteLine box is 0,and 1 line later it turns into 15 if you enter 5?
24th Feb 2021, 1:14 AM
Yasswecancn
Yasswecancn - avatar