How to remove characters from a numeric string such that the string becomes divisible by 8 in C#

1 Answer

0 votes
using System;

public class Program
{
	public static int checkIfNumExist(string num, string s) {
		int index = 0;

		foreach (char ch in s.ToCharArray()) {
			if (num[index] == ch) {
				index++;
				if (num.Length == index) {
					break;
				}
			}
		}

		return index == num.Length ? 1 : 0;
	}

	public static string convertStringToBecomesDivisibleBy8(string s)
	{
		for (int i = 8; i < 1e3; i += 8) {
			string num = Convert.ToString(i);
			if (checkIfNumExist(num, s) == 1) {
				return num;
			}
		}

		return "-1";
	}

	public static void Main(string[] args)
	{
		string s1 = "127892";
		string result = convertStringToBecomesDivisibleBy8(s1);
		Console.WriteLine(result);

		string s2 = "1201674";
		result = convertStringToBecomesDivisibleBy8(s2);
		Console.WriteLine(result);

		string s3 = "1209574";
		result = convertStringToBecomesDivisibleBy8(s3);
		Console.WriteLine(result);

		string s4 = "190395473";
		result = convertStringToBecomesDivisibleBy8(s4);
		Console.WriteLine(result);

		string s5 = "1309577";
		result = convertStringToBecomesDivisibleBy8(s5);
		if (!result.Equals("-1")) {
			s5 = result;
			Console.WriteLine(s5);
		}
		else {
			Console.WriteLine("No numeric characters combination divisible by 8");
		}
	}
}



/*
run:
 
8
16
24
104
No numeric characters combination divisible by 8
 
*/

 



answered Mar 19, 2024 by avibootz
...