In: Computer Science
A zombie picks up a calculator and starts adding odd whole numbers together, in order: 1 + 3 + 5......etc. You want to be able to determine the last number the zombie will add that will make the sum exceed some target number, such as "What will be the last number added that will make the sum on his calculator greater than 10,000?".
Write the MATLAB code necessary to solve this problem for the zombie or he will eat your brain. Create a function with an input of the target number (in the scenario given above the target number would be 10,000), which outputs the last numbered added.
MATLAB Function:
function f = oddSum(n)
num=1
total=1
while 1
num = num + 2
total = total + num
if total>n
break
end
end
f = num
end
If the above function is called using oddSum(10000), the below output will come.
Output:
num = 1 total = 1 num = 3 total = 4 num = 5 total = 9 num = 7 total = 16 num = 9 total = 25 num = 11 total = 36 num = 13 total = 49 num = 15 total = 64 num = 17 total = 81 num = 19 total = 100 num = 21 total = 121 num = 23 total = 144 num = 25 total = 169 num = 27 total = 196 num = 29 total = 225 num = 31 total = 256 num = 33 total = 289 num = 35 total = 324 num = 37 total = 361 num = 39 total = 400 num = 41 total = 441 num = 43 total = 484 num = 45 total = 529 num = 47 total = 576 num = 49 total = 625 num = 51 total = 676 num = 53 total = 729 num = 55 total = 784 num = 57 total = 841 num = 59 total = 900 num = 61 total = 961 num = 63 total = 1024 num = 65 total = 1089 num = 67 total = 1156 num = 69 total = 1225 num = 71 total = 1296 num = 73 total = 1369 num = 75 total = 1444 num = 77 total = 1521 num = 79 total = 1600 num = 81 total = 1681 num = 83 total = 1764 num = 85 total = 1849 num = 87 total = 1936 num = 89 total = 2025 num = 91 total = 2116 num = 93 total = 2209 num = 95 total = 2304 num = 97 total = 2401 num = 99 total = 2500 num = 101 total = 2601 num = 103 total = 2704 num = 105 total = 2809 num = 107 total = 2916 num = 109 total = 3025 num = 111 total = 3136 num = 113 total = 3249 num = 115 total = 3364 num = 117 total = 3481 num = 119 total = 3600 num = 121 total = 3721 num = 123 total = 3844 num = 125 total = 3969 num = 127 total = 4096 num = 129 total = 4225 num = 131 total = 4356 num = 133 total = 4489 num = 135 total = 4624 num = 137 total = 4761 num = 139 total = 4900 num = 141 total = 5041 num = 143 total = 5184 num = 145 total = 5329 num = 147 total = 5476 num = 149 total = 5625 num = 151 total = 5776 num = 153 total = 5929 num = 155 total = 6084 num = 157 total = 6241 num = 159 total = 6400 num = 161 total = 6561 num = 163 total = 6724 num = 165 total = 6889 num = 167 total = 7056 num = 169 total = 7225 num = 171 total = 7396 num = 173 total = 7569 num = 175 total = 7744 num = 177 total = 7921 num = 179 total = 8100 num = 181 total = 8281 num = 183 total = 8464 num = 185 total = 8649 num = 187 total = 8836 num = 189 total = 9025 num = 191 total = 9216 num = 193 total = 9409 num = 195 total = 9604 num = 197 total = 9801 num = 199 total = 10000 num = 201 total = 10201 f = 201
Hence, the function result is 201 which makes the sum greater than 10000.