diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game.sln b/C#/Countdown Numbers Game/Countdown Numbers Game.sln new file mode 100644 index 0000000..fdf02ad --- /dev/null +++ b/C#/Countdown Numbers Game/Countdown Numbers Game.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27428.2015 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Countdown Numbers Game", "Countdown Numbers Game\Countdown Numbers Game.csproj", "{92DB8F4B-F5E6-4BCE-B496-7386AB268A18}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92DB8F4B-F5E6-4BCE-B496-7386AB268A18}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C36BEE9C-9C1E-481A-B62E-1BE2A345EEFC} + EndGlobalSection +EndGlobal diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/App.config b/C#/Countdown Numbers Game/Countdown Numbers Game/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/C#/Countdown Numbers Game/Countdown Numbers Game/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/Countdown Numbers Game.csproj b/C#/Countdown Numbers Game/Countdown Numbers Game/Countdown Numbers Game.csproj new file mode 100644 index 0000000..cb303a1 --- /dev/null +++ b/C#/Countdown Numbers Game/Countdown Numbers Game/Countdown Numbers Game.csproj @@ -0,0 +1,52 @@ + + + + + Debug + AnyCPU + {92DB8F4B-F5E6-4BCE-B496-7386AB268A18} + Exe + Countdown_Numbers_Game + Countdown Numbers Game + v4.6.1 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/Program.cs b/C#/Countdown Numbers Game/Countdown Numbers Game/Program.cs new file mode 100644 index 0000000..5335b0d --- /dev/null +++ b/C#/Countdown Numbers Game/Countdown Numbers Game/Program.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Countdown_Numbers_Game { + class Program { + static void Main(string[] args) { + Program p = new Program(); + p.getInput(); + } + + private void getInput() { + int target = 0; + int[] inputArray = new int[0]; + + bool inputValid = false; + while (!inputValid) { + try { + Console.Write("Enter a target full number: "); + target = int.Parse(Console.ReadLine()); + inputValid = true; + } catch { + Console.WriteLine("That's not a valid number"); + } + } + + inputValid = false; + while (!inputValid) { + try { + Console.Write("Enter an array of whole numbers sepperated by spaces: "); + string inputString = Console.ReadLine(); + string[] inputStringArray = inputString.Split(' '); + inputArray = new int[inputStringArray.Length]; + for (int i = 0; i < inputStringArray.Length; i++) { + inputArray[i] = int.Parse(inputStringArray[i]); + } + inputValid = true; + } catch { + Console.WriteLine("An error occured, you may not have formated the array correctly or diddnt use intigers"); + } + } + + Solver solve = new Solver(); + string output = solve.getSolution(target, inputArray); + + if (output == "false") { + + } else { + + } + Console.ReadKey(); + } + + class Solver { + + public string getSolution(int target, int[] inputArray) { + inputArray = SortArray(inputArray); + + for (int i = 0; i < inputArray.Length; i++) { + Console.Write(inputArray[i] + " "); + } + + if (!isPossible(target, inputArray)) { + return "false"; + } + + + return findMethod(target, inputArray); + } + + private bool isPossible(int target, int[] inputArray) { + for (int i = 1; i < inputArray.Length; i++) { + if (inputArray[i] + inputArray[i-1] == target { + return true; + } + } + + return false; + } + + private string findMethod(int target, int[] inputArray) { + return " "; + } + + private int[] SortArray(int[] array) { + int length = array.Length; + int temp = array[0]; + for (int i = 0; i < length; i++) { + for (int j = i + 1; j < length; j++) { + if (array[i] > array[j]) { + temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + } + } + return array; + } + } + } +} diff --git a/C#/Countdown Numbers Game/Countdown Numbers Game/Properties/AssemblyInfo.cs b/C#/Countdown Numbers Game/Countdown Numbers Game/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0638ef0 --- /dev/null +++ b/C#/Countdown Numbers Game/Countdown Numbers Game/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Countdown Numbers Game")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Countdown Numbers Game")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("92db8f4b-f5e6-4bce-b496-7386ab268a18")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/C#/Factorial/Factorial.sln b/C#/Factorial/Factorial.sln new file mode 100644 index 0000000..c0649e5 --- /dev/null +++ b/C#/Factorial/Factorial.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27428.2015 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Factorial", "Factorial\Factorial.csproj", "{8C37B50A-05F4-4864-B51E-26DA65757160}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8C37B50A-05F4-4864-B51E-26DA65757160}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C37B50A-05F4-4864-B51E-26DA65757160}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C37B50A-05F4-4864-B51E-26DA65757160}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C37B50A-05F4-4864-B51E-26DA65757160}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C0E00600-4537-4E17-B79D-F6D71B203019} + EndGlobalSection +EndGlobal diff --git a/C#/Factorial/Factorial/App.config b/C#/Factorial/Factorial/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/C#/Factorial/Factorial/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/C#/Factorial/Factorial/Factorial.csproj b/C#/Factorial/Factorial/Factorial.csproj new file mode 100644 index 0000000..53e6045 --- /dev/null +++ b/C#/Factorial/Factorial/Factorial.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {8C37B50A-05F4-4864-B51E-26DA65757160} + Exe + Factorial + Factorial + v4.6.1 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/C#/Factorial/Factorial/Program.cs b/C#/Factorial/Factorial/Program.cs new file mode 100644 index 0000000..642ae59 --- /dev/null +++ b/C#/Factorial/Factorial/Program.cs @@ -0,0 +1,46 @@ +using System; +using System.Numerics; +using System.Diagnostics; + +namespace Factorial { + class Program { + static void Main(string[] args) { + bool exit = false; + while (!exit) { + bool correct = false; + int find = 0; + while (!correct) { + try { + Console.Write("Enter a number to find the factorial of: "); + find = int.Parse(Console.ReadLine()); + correct = true; + } catch { + Console.WriteLine("That is not a number"); + } + } + Console.WriteLine($"The factorial of { find } is { Factorial(find) }"); + Console.WriteLine("Press any key to exit and enter to try again"); + var response = Console.ReadKey(); + switch (response.Key) { + case ConsoleKey.Enter: + break; + default: + exit = true; + break; + } + } + } + + static BigInteger Factorial(int arg) { + Stopwatch t = new Stopwatch(); ; + t.Start(); + BigInteger value = 1; + for (int i = 2; i <= arg; i++) { + value *= i; + } + t.Stop(); + Console.WriteLine("Found in {0} ms", t.Elapsed.TotalMilliseconds); + return value; + } + } +} diff --git a/C#/Factorial/Factorial/Properties/AssemblyInfo.cs b/C#/Factorial/Factorial/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1e6ca8b --- /dev/null +++ b/C#/Factorial/Factorial/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Factorial")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Factorial")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8c37b50a-05f4-4864-b51e-26da65757160")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/C++/FirstProgram/.vscode/launch.json b/C++/FirstProgram/.vscode/launch.json deleted file mode 100644 index 9833637..0000000 --- a/C++/FirstProgram/.vscode/launch.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "(Windows) Launch", - "type": "cppvsdbg", - "request": "launch", - "program": "enter program name, for example ${workspaceFolder}/a.exe", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": true - } - ] -} \ No newline at end of file diff --git a/C++/FirstProgram/main b/C++/FirstProgram/main new file mode 100644 index 0000000..f7f8a62 Binary files /dev/null and b/C++/FirstProgram/main differ diff --git a/C++/FirstProgram/main.cpp b/C++/FirstProgram/main.cpp index a47b101..6e3c482 100644 --- a/C++/FirstProgram/main.cpp +++ b/C++/FirstProgram/main.cpp @@ -1,9 +1,22 @@ #include using namespace std; -int main() { - for (int i = 0; i < 10; i++) { - cout << i; +long factorial(int num) { + long factor = num; + for (int i = 1; i < num; i++) { + factor = i * factor; } - return 0; + return factor; } + +int main() { + int num; + cout << "Enter a number to find it's factorial: "; + cin >> num; + + long output = factorial(num); + cout << output; + + cin >> num; + return 0; +} \ No newline at end of file diff --git a/C++/FirstProgram/main.exe b/C++/FirstProgram/main.exe index c3072df..b93ab82 100644 Binary files a/C++/FirstProgram/main.exe and b/C++/FirstProgram/main.exe differ diff --git a/C++/FirstProgram/makefile b/C++/FirstProgram/makefile new file mode 100644 index 0000000..9c2ee80 --- /dev/null +++ b/C++/FirstProgram/makefile @@ -0,0 +1,5 @@ +all: main.cpp + g++ -g -Wall -o main main.cpp + +clean: + $(RM) main \ No newline at end of file