Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace quizlunedi
- {
- class MainClass
- {
- static bool SumExistsUtil(int[] data, int sum, int major_index, int minor_index, bool left)
- {
- while (major_index != minor_index) {
- Console.WriteLine("Confronted values/indexes: "
- + major_index + "/" + data[major_index]
- + " "
- + minor_index + "/" + data[minor_index]);
- int curr_sum = data[major_index] + data[minor_index];
- if (curr_sum == sum)
- return true;
- else if (left && curr_sum < sum)
- break;
- else if (!left && curr_sum > sum)
- break;
- if (left)
- minor_index--;
- else
- minor_index++;
- }
- if (major_index != minor_index)
- return SumExistsUtil(data, sum, minor_index,
- left ? major_index + 1 : major_index - 1, !left);
- else
- return false;
- }
- static bool SumExists(int[] data, int sum, int data_len)
- {
- return SumExistsUtil(data, sum, 0, data_len-1, true);
- }
- public static void Main (string[] args)
- {
- int[] data = { -20, -19, -1, 0, 1, 4, 7, 8, 9, 10 };
- if (SumExists(data, 80, 10))
- Console.WriteLine ("Sum exists!");
- else
- Console.WriteLine ("Sum don't exists!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement