// Numbas version: exam_results_page_options {"percentPass": 0, "metadata": {"licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International", "description": "

Adding, subtracting and multiplying two and three digit numbers. Now with worked solutions.

"}, "duration": 0, "question_groups": [{"pickingStrategy": "all-ordered", "name": "Group", "pickQuestions": 1, "questions": [{"name": "Addition", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": ["adding", "Addition", "addition", "algorithms", "plus"], "metadata": {"description": "

Natural numbers addition algorithm. 2 and 3 digit numbers. Carrying.

", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "

Write the following questions down on paper and evaluate them without using a calculator.

\n

If you are unsure of how to do a question, click on Show steps to see the full working. Then, once you understand how to do the question, click on Try another question like this one to start again.

", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"chuncarry": {"name": "chuncarry", "group": "Ungrouped variables", "definition": "floor(chunsum/10)", "description": "", "templateType": "anything", "can_override": false}, "ctencarry": {"name": "ctencarry", "group": "Ungrouped variables", "definition": "floor(ctensum/10)", "description": "", "templateType": "anything", "can_override": false}, "bTenSum": {"name": "bTenSum", "group": "Ungrouped variables", "definition": "bdigs[1]+bdigs[3]+bunitsumtensdigit", "description": "", "templateType": "anything", "can_override": false}, "cunitsum": {"name": "cunitsum", "group": "Ungrouped variables", "definition": "cdigs[0]+cdigs[3]", "description": "", "templateType": "anything", "can_override": false}, "bUnitSumLastDigit": {"name": "bUnitSumLastDigit", "group": "Ungrouped variables", "definition": "mod(bunitsum,10)", "description": "", "templateType": "anything", "can_override": false}, "bunitsumtensdigit": {"name": "bunitsumtensdigit", "group": "Ungrouped variables", "definition": "floor((bunitsum)/10)", "description": "", "templateType": "anything", "can_override": false}, "bans": {"name": "bans", "group": "Ungrouped variables", "definition": "b2digit+b3digit", "description": "", "templateType": "anything", "can_override": false}, "btencarry": {"name": "btencarry", "group": "Ungrouped variables", "definition": "floor(btensum/10)", "description": "", "templateType": "anything", "can_override": false}, "bdigs": {"name": "bdigs", "group": "Ungrouped variables", "definition": "shuffle(1..9)[0..5]", "description": "", "templateType": "anything", "can_override": false}, "cunitcarry": {"name": "cunitcarry", "group": "Ungrouped variables", "definition": "floor(cunitsum/10)", "description": "", "templateType": "anything", "can_override": false}, "bunitsum": {"name": "bunitsum", "group": "Ungrouped variables", "definition": "bdigs[0]+bdigs[2]", "description": "", "templateType": "anything", "can_override": false}, "threedigit2": {"name": "threedigit2", "group": "Ungrouped variables", "definition": "cdigs[3]+cdigs[4]*10+cdigs[5]*100", "description": "", "templateType": "anything", "can_override": false}, "threedigit1": {"name": "threedigit1", "group": "Ungrouped variables", "definition": "cdigs[0]+cdigs[1]*10+cdigs[2]*100", "description": "", "templateType": "anything", "can_override": false}, "chunsumlastdigit": {"name": "chunsumlastdigit", "group": "Ungrouped variables", "definition": "mod(chunsum,10)", "description": "", "templateType": "anything", "can_override": false}, "cdigs": {"name": "cdigs", "group": "Ungrouped variables", "definition": "shuffle(3..9)", "description": "", "templateType": "anything", "can_override": false}, "b2digit": {"name": "b2digit", "group": "Ungrouped variables", "definition": "bdigs[0]+bdigs[1]*10", "description": "", "templateType": "anything", "can_override": false}, "cans": {"name": "cans", "group": "Ungrouped variables", "definition": "threedigit1+threedigit2", "description": "", "templateType": "anything", "can_override": false}, "cunitsumlastdigit": {"name": "cunitsumlastdigit", "group": "Ungrouped variables", "definition": "mod(cunitsum,10)", "description": "", "templateType": "anything", "can_override": false}, "b3digit": {"name": "b3digit", "group": "Ungrouped variables", "definition": "bdigs[2]+bdigs[3]*10+bdigs[4]*100", "description": "", "templateType": "anything", "can_override": false}, "ctensumlastdigit": {"name": "ctensumlastdigit", "group": "Ungrouped variables", "definition": "mod(ctensum,10)", "description": "", "templateType": "anything", "can_override": false}, "bsumhun": {"name": "bsumhun", "group": "Ungrouped variables", "definition": "bdigs[4]+btencarry", "description": "", "templateType": "anything", "can_override": false}, "bsumhunlastdigit": {"name": "bsumhunlastdigit", "group": "Ungrouped variables", "definition": "mod(bsumhun,10)", "description": "", "templateType": "anything", "can_override": false}, "bsumhuncarry": {"name": "bsumhuncarry", "group": "Ungrouped variables", "definition": "floor(bsumhun/10)", "description": "", "templateType": "anything", "can_override": false}, "ctensum": {"name": "ctensum", "group": "Ungrouped variables", "definition": "cdigs[1]+cdigs[4]+cunitcarry", "description": "", "templateType": "anything", "can_override": false}, "chunsum": {"name": "chunsum", "group": "Ungrouped variables", "definition": "ctencarry+cdigs[2]+cdigs[5]", "description": "", "templateType": "anything", "can_override": false}, "btensumlastdigit": {"name": "btensumlastdigit", "group": "Ungrouped variables", "definition": "mod(btensum,10)", "description": "", "templateType": "anything", "can_override": false}, "cunitsumtensdigit": {"name": "cunitsumtensdigit", "group": "Ungrouped variables", "definition": "0.1*(cunitsum-cunitsumlastdigit)", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["bdigs", "b2digit", "b3digit", "bunitsum", "bUnitSumLastDigit", "bunitsumtensdigit", "bTenSum", "btensumlastdigit", "btencarry", "bsumhun", "bsumhuncarry", "bsumhunlastdigit", "bans", "cdigs", "threedigit1", "threedigit2", "cans", "cunitsum", "cunitsumlastdigit", "cunitcarry", "ctensum", "ctensumlastdigit", "ctencarry", "chunsum", "chunsumlastdigit", "chuncarry", "cunitsumtensdigit"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

$\\var{b2digit}+\\var{b3digit} = $ [[0]]

", "stepsPenalty": "1", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Generally, we set up $\\var{b2digit}+\\var{b3digit}$ with the ones and the tens columns lined up vertically:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\var{bdigs[1]}$$\\var{bdigs[0]}$$+$
$\\var{bdigs[4]}$$\\var{bdigs[3]}$$\\var{bdigs[2]}$
$\\phantom{0}$
\n

\n

Now we add the digits in the ones column.

\n

This results in $\\var{bunitsum}$ and so we place $\\var{bunitsumlastdigit}$ under the line in the ones column.

\n

This results in $\\var{bunitsum}$ and so we place $\\var{bunitsumlastdigit}$ under the line in the ones column and carry the $1$ into the tens column. 

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\color{red}1}{\\var{bdigs[1]}}$ $\\overset{\\phantom{0}}{\\var{bdigs[1]}}$$\\overset{\\phantom{1}}{\\var{bdigs[0]}}$$+$
$\\var{bdigs[4]}$$\\var{bdigs[3]}$$\\var{bdigs[2]}$
$\\color{red}{\\var{bUnitSumLastDigit}}$
\n

\n

Now we add the digits in the tens column.

\n

This results in $\\var{bTenSum}$ and so we place $\\var{bTenSumlastdigit}$ under the line in the tens column.

\n

This results in $\\var{bTenSum}$ and so we place $\\var{bTenSumlastdigit}$ under the line in the tens column and carry the $1$ into the hundreds column.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
${\\overset{\\color{red}1}{\\phantom{0}}}$ $\\phantom{0}$$\\overset{1}{\\var{bdigs[1]}}$ $\\overset{\\phantom{0}}{\\var{bdigs[1]}}$$\\overset{\\phantom{1}}{\\var{bdigs[0]}}$$+$
$\\var{bdigs[4]}$$\\var{bdigs[3]}$$\\var{bdigs[2]}$
$\\color{red}{\\var{bTenSumlastdigit}}$${\\var{bUnitSumLastDigit}}$
\n

\n

Now we add the digits in the hundreds column.

\n

This is simply $\\var{bdigs[4]}$ so we place $\\var{bdigs[4]}$ under the line in the hundreds column.

\n

This is $\\var{bsumhun}$ so we place $\\var{bsumhun}$ under the line in the hundreds column.

\n

This is $\\var{bsumhun}$ so we place $\\var{bsumhun}$ under the line so that its rightmost digit is in the hundreds column.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{1}{\\phantom{0}}$ $\\phantom{0}$$\\overset{1}{\\var{bdigs[1]}}$ $\\overset{\\phantom{0}}{\\var{bdigs[1]}}$$\\overset{\\phantom{1}}{\\var{bdigs[0]}}$$+$
$\\var{bdigs[4]}$$\\var{bdigs[3]}$$\\var{bdigs[2]}$
$\\phantom{\\var{bsumhuncarry}}$ $\\color{red}{\\var{bsumhuncarry}}$$\\color{red}{\\var{bsumhunlastdigit}}$$\\var{bTenSumlastdigit}$${\\var{bUnitSumLastDigit}}$
\n

\n

\n

The answer is therefore $\\var{bans}$.

"}], "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "bans", "maxValue": "bans", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

$\\var{threedigit1}+\\var{threedigit2} = $ [[0]]

", "stepsPenalty": "1", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Generally we set up $\\var{threedigit1}+\\var{threedigit2}$ with the ones, tens and hundreds columns lined up vertically:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\var{cdigs[2]}$$\\var{cdigs[1]}$$\\var{cdigs[0]}$$+$
$\\var{cdigs[5]}$$\\var{cdigs[4]}$$\\var{cdigs[3]}$
$\\phantom{0}$
\n

\n

Now we add the digits in the ones column.

\n

This results in $\\var{cunitsum}$ and so we place $\\var{cunitsumlastdigit}$ under the line in the ones column.

\n

This results in $\\var{cunitsum}$ and so we place $\\var{cunitsumlastdigit}$ under the line in the ones column and carry the $1$ into the tens column. 

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\phantom{1}}{\\var{cdigs[2]}}$$\\overset{\\color{red}1}{\\var{cdigs[1]}}$ $\\overset{\\phantom{0}}{\\var{cdigs[1]}}$$\\overset{\\phantom{1}}{\\var{cdigs[0]}}$$+$
$\\var{cdigs[5]}$$\\var{cdigs[4]}$$\\var{cdigs[3]}$
$\\color{red}{\\var{cunitSumLastDigit}}$
\n

\n

Now we add the digits in the tens column.

\n

This results in $\\var{ctenSum}$ and so we place $\\var{ctenSumlastdigit}$ under the line in the tens column.

\n

This results in $\\var{ctenSum}$ and so we place $\\var{ctenSumlastdigit}$ under the line in the tens column and carry the $1$ into the hundreds column.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
${\\overset{\\color{red}1}{\\var{cdigs[2]}}}$ $\\overset{\\phantom{1}}{\\var{cdigs[2]}}$$\\overset{1}{\\var{cdigs[1]}}$ $\\overset{\\phantom{0}}{\\var{cdigs[1]}}$$\\overset{\\phantom{1}}{\\var{cdigs[0]}}$$+$
$\\var{cdigs[5]}$$\\var{cdigs[4]}$$\\var{cdigs[3]}$
$\\color{red}{\\var{ctenSumlastdigit}}$${\\var{cunitSumLastDigit}}$
\n

\n

Now we add the digits in the hundreds column.

\n

This is $\\var{chunsum}$ so we place $\\var{chunsum}$ under the line in the hundreds column.

\n

This is $\\var{chunsum}$ so we place $\\var{chunsum}$ under the line so that its rightmost digit is in the hundreds column.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{1}{\\var{cdigs[2]}}$ $\\overset{\\phantom{1}}{\\var{cdigs[2]}}$$\\overset{1}{\\var{cdigs[1]}}$ $\\overset{\\phantom{0}}{\\var{cdigs[1]}}$$\\overset{\\phantom{1}}{\\var{cdigs[0]}}$$+$
$\\var{cdigs[5]}$$\\var{cdigs[4]}$$\\var{cdigs[3]}$
$\\phantom{\\var{chuncarry}}$ $\\color{red}{\\var{chuncarry}}$$\\color{red}{\\var{chunsumlastdigit}}$$\\var{ctenSumlastdigit}$${\\var{cunitSumLastDigit}}$
\n

\n

\n

The answer is therefore $\\var{cans}$.

"}], "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "cans", "maxValue": "cans", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always"}, {"name": "Subtraction", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": ["algorithms", "minus", "subtracting", "subtraction", "take away"], "metadata": {"description": "

The subtraction algortihm using the borrow and pay back method with integers.

", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "

Write the following question down on paper and evaluate it without using a calculator.

\n

If you are unsure of how to do a question, click on Show steps to see the full working. Then, once you understand how to do the question, click on Try another question like this one to start again.

", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"newtopten": {"name": "newtopten", "group": "c", "definition": "if(unitdiff>=0,top[1],top[1]-1)", "description": "", "templateType": "anything", "can_override": false}, "ansunit": {"name": "ansunit", "group": "c", "definition": "mod(ans,10)", "description": "", "templateType": "anything", "can_override": false}, "hundiff": {"name": "hundiff", "group": "c", "definition": "if(tendiff>=0,top[2]-bot[2],top[2]-1-bot[2])", "description": "", "templateType": "anything", "can_override": false}, "botnum": {"name": "botnum", "group": "c", "definition": "bot[0]+bot[1]*10+bot[2]*100", "description": "", "templateType": "anything", "can_override": false}, "ansten": {"name": "ansten", "group": "c", "definition": "mod(floor(ans/10),10)", "description": "", "templateType": "anything", "can_override": false}, "tendiff": {"name": "tendiff", "group": "c", "definition": "if(unitdiff>=0,top[1]-bot[1],top[1]-1-bot[1])", "description": "", "templateType": "anything", "can_override": false}, "unitdiff": {"name": "unitdiff", "group": "c", "definition": "top[0]-bot[0]", "description": "", "templateType": "anything", "can_override": false}, "bot": {"name": "bot", "group": "c", "definition": "random(\nif(top[0]<9,[random(top[0]+1..9), random(top[1]..9), random(1..top[2]-1)],\n if(top[1]<9,[random(top[0]..9), random(top[1]+1..9), random(1..top[2]-1)],\"error\")),\nif(top[1]<9,[random(0..top[0]), random(top[1]+1..9), random(1..top[2]-1)],\n if(top[1]=9,[random(top[0]..9), random(0..9), random(1..top[2]-1)],\"error\"))\n)\n", "description": "

This should force some borrowing and paying back, and that the final answer is positive.

", "templateType": "anything", "can_override": false}, "newtophun": {"name": "newtophun", "group": "c", "definition": "if(tendiff>=0,top[2],top[2]-1)", "description": "", "templateType": "anything", "can_override": false}, "topnum": {"name": "topnum", "group": "c", "definition": "top[0]+top[1]*10+top[2]*100", "description": "", "templateType": "anything", "can_override": false}, "anshun": {"name": "anshun", "group": "c", "definition": "mod(floor(ans/100),10)", "description": "", "templateType": "anything", "can_override": false}, "ans": {"name": "ans", "group": "c", "definition": "topnum-botnum", "description": "", "templateType": "anything", "can_override": false}, "top": {"name": "top", "group": "c", "definition": "random([random(0..9),random(1..8),random(2..9)],[random(0..8),random(1..9),random(2..9)])", "description": "

Borrowing from the hundreds to do the units is not covered with this randomisation. We will do that in another part.

", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "c", "variables": ["top", "bot", "topnum", "botnum", "ans", "unitdiff", "tendiff", "hundiff", "ansunit", "ansten", "anshun", "newtopten", "newtophun"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

$\\var{topnum}-\\var{botnum} = $ [[0]]

", "stepsPenalty": "1", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Generally we set up $\\var{topnum}-\\var{botnum}$ with the ones, tens and hundreds columns lined up vertically:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\var{top[2]}$$\\var{top[1]}$$\\var{top[0]}$$-$
$\\var{bot[2]}$$\\var{bot[1]}$$\\var{bot[0]}$
$\\phantom{0}$
\n

\n

Now we try to subtract the digits in the ones column.

\n

Since this is $\\var{ansunit}$ we write $\\var{ansunit}$ under the line in the ones column.

\n

Since we can't take $\\var{bot[0]}$ away from $\\var{top[0]}$ (without using negative numbers) we borrow a ten from the tens column. This means we cross out the $\\var{top[1]}$ in the tens column and replace it with a $\\var{top[1]-1}$, and the $\\var{top[0]}$ becomes a $\\var{10+top[0]}$. Now we can do $\\var{10+top[0]}-\\var{bot[0]}$, and write the result, $\\var{ansunit}$, under the line in the ones column. 

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\phantom{1}}{\\var{top[2]}}$$\\overset{\\color{red}{\\var{newtopten}}}{\\var{top[1]}\\mkern-7.5mu\\color{red}/}$ $\\overset{\\phantom{1}}{\\var{top[1]}}$$\\color{red}{^1}\\overset{\\phantom{1}}{\\var{top[0]}}$ $\\overset{\\phantom{1}}{\\var{top[0]}}$$-$
$\\var{bot[2]}$$\\var{bot[1]}$$\\var{bot[0]}$
$\\color{red}{\\var{ansunit}}$
\n

\n

Now we try to subtract the digits in the tens column.

\n

Since this is $\\var{ansten}$ we write $\\var{ansten}$ under the line in the tens column.

\n

Since we can't take $\\var{bot[1]}$ away from $\\var{newtopten}$ (without using negative numbers) we borrow a hundred from the hundred column. This means we cross out the $\\var{top[2]}$ in the hundreds column and replace it with a $\\var{top[2]-1}$, and the $\\var{newtopten}$ in the tens column becomes a $\\var{10+newtopten}$. Now we can do $\\var{10+newtopten}-\\var{bot[1]}$, and write the result, $\\var{ansten}$, under the line in the tens column. 

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

$\\overset{\\color{red}{\\var{newtophun}}}{\\var{top[2]}\\mkern-7.5mu\\color{red}{/}}$ $\\overset{\\phantom{1}}{\\var{top[2]}}$

\n
\n

$\\overset{\\color{red}{1}\\var{newtopten}}{\\var{top[1]}\\mkern-7.5mu/}$ $\\overset{\\var{newtopten}}{\\var{top[1]}\\mkern-7.5mu/}$ $\\color{red}{^1}\\overset{\\phantom{1}}{\\var{top[1]}}$ $\\overset{\\phantom{1}}{\\var{top[1]}}$

\n
${^1}\\overset{\\phantom{1}}{\\var{top[0]}}$ $\\overset{\\phantom{1}}{\\var{top[0]}}$$-$
$\\var{bot[2]}$$\\var{bot[1]}$$\\var{bot[0]}$
$\\color{red}{\\var{ansten}}$$\\var{ansunit}$
\n

\n

Now we try to subtract the digits in the hundreds column.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

$\\overset{\\var{newtophun}}{\\var{top[2]}\\mkern-7.5mu/}$ $\\overset{\\phantom{1}}{\\var{top[2]}}$

\n
\n

$\\overset{{1}\\var{newtopten}}{\\var{top[1]}\\mkern-7.5mu/}$ $\\overset{\\var{newtopten}}{\\var{top[1]}\\mkern-7.5mu/}$ ${^1}\\overset{\\phantom{1}}{\\var{top[1]}}$ $\\overset{\\phantom{1}}{\\var{top[1]}}$

\n
${^1}\\overset{\\phantom{1}}{\\var{top[0]}}$ $\\overset{\\phantom{1}}{\\var{top[0]}}$$-$
$\\var{bot[2]}$$\\var{bot[1]}$$\\var{bot[0]}$
$\\color{red}{\\var{anshun}}$$\\var{ansten}$$\\var{ansunit}$
\n

\n

The answer is therefore $\\var{ans}$.

"}], "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "ans", "maxValue": "ans", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always"}, {"name": "Multiplication 2 digit by 2 digit", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": ["algorithms", "long multiplication", "multiplication", "times"], "metadata": {"description": "

Multiplication algorithm with integers

", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "

Write the following question down on paper and evaluate it without using a calculator. 

\n

If you are unsure of how to do a question, click on Show steps to see the full working. Then, once you understand how to do the question, click on Try another question like this one to start again. 

", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"ab0t0": {"name": "ab0t0", "group": "2digit", "definition": "atop[0]*abot[0]", "description": "", "templateType": "anything", "can_override": false}, "asum1": {"name": "asum1", "group": "2digit", "definition": "abot[0]*atopnum", "description": "", "templateType": "anything", "can_override": false}, "ab0t1": {"name": "ab0t1", "group": "2digit", "definition": "abot[0]*atop[1]", "description": "", "templateType": "anything", "can_override": false}, "ab0t0carry": {"name": "ab0t0carry", "group": "2digit", "definition": "(ab0t0-ab0t0last)/10", "description": "", "templateType": "anything", "can_override": false}, "abot": {"name": "abot", "group": "2digit", "definition": "if(adigs[2]<>0,[adigs[3],adigs[2]],[adigs[2],adigs[3]])", "description": "

abot

", "templateType": "anything", "can_override": false}, "abotnum": {"name": "abotnum", "group": "2digit", "definition": "abot[1]*10+abot[0]", "description": "

botnum

", "templateType": "anything", "can_override": false}, "aansone": {"name": "aansone", "group": "2digit", "definition": "mod(aans,10)", "description": "", "templateType": "anything", "can_override": false}, "aansten": {"name": "aansten", "group": "2digit", "definition": "mod((aans-aansone)/10,10)", "description": "", "templateType": "anything", "can_override": false}, "ab1t0last": {"name": "ab1t0last", "group": "2digit", "definition": "mod(ab1t0,10)", "description": "", "templateType": "anything", "can_override": false}, "threedigit2": {"name": "threedigit2", "group": "Ungrouped variables", "definition": "random(101..999 except list(200..900#100) )", "description": "", "templateType": "anything", "can_override": false}, "twodigit3": {"name": "twodigit3", "group": "Ungrouped variables", "definition": "random(11..99 except list(20..90#10) )", "description": "", "templateType": "anything", "can_override": false}, "aans": {"name": "aans", "group": "2digit", "definition": "atopnum*abotnum", "description": "", "templateType": "anything", "can_override": false}, "ab1t1last": {"name": "ab1t1last", "group": "2digit", "definition": "mod(ab1t1pluscarry,10)", "description": "", "templateType": "anything", "can_override": false}, "ab1t1carry": {"name": "ab1t1carry", "group": "2digit", "definition": "(ab1t1pluscarry-ab1t1last)/10", "description": "", "templateType": "anything", "can_override": false}, "aanstho": {"name": "aanstho", "group": "2digit", "definition": "mod((aans-aansone-aansten*10-aanshun*100)/1000,10)", "description": "", "templateType": "anything", "can_override": false}, "aanshun": {"name": "aanshun", "group": "2digit", "definition": "mod((aans-aansone-aansten*10)/100,10)", "description": "", "templateType": "anything", "can_override": false}, "ab1t0": {"name": "ab1t0", "group": "2digit", "definition": "abot[1]*atop[0]", "description": "", "templateType": "anything", "can_override": false}, "twodigit1": {"name": "twodigit1", "group": "Ungrouped variables", "definition": "random(11..99 except list(20..90#10) )", "description": "", "templateType": "anything", "can_override": false}, "atopnum": {"name": "atopnum", "group": "2digit", "definition": "atop[1]*10+atop[0]", "description": "", "templateType": "anything", "can_override": false}, "atop": {"name": "atop", "group": "2digit", "definition": "if(adigs[0]<>0,[adigs[1],adigs[0]],[adigs[0],adigs[1]])", "description": "", "templateType": "anything", "can_override": false}, "ab1t1pluscarry": {"name": "ab1t1pluscarry", "group": "2digit", "definition": "ab1t1+ab1t0carry", "description": "", "templateType": "anything", "can_override": false}, "ab0t1carry": {"name": "ab0t1carry", "group": "2digit", "definition": "(ab0t1pluscarry-ab0t1last)/10", "description": "", "templateType": "anything", "can_override": false}, "threedigit3": {"name": "threedigit3", "group": "Ungrouped variables", "definition": "random(101..999 except list(200..900#100) )", "description": "", "templateType": "anything", "can_override": false}, "twodigit2": {"name": "twodigit2", "group": "Ungrouped variables", "definition": "random(11..99 except list(20..90#10) )", "description": "", "templateType": "anything", "can_override": false}, "asum2": {"name": "asum2", "group": "2digit", "definition": "10*abot[1]*atopnum", "description": "

sum2

", "templateType": "anything", "can_override": false}, "threedigit1": {"name": "threedigit1", "group": "Ungrouped variables", "definition": "random(101..999 except list(200..900#100) )", "description": "", "templateType": "anything", "can_override": false}, "ab0t1pluscarry": {"name": "ab0t1pluscarry", "group": "2digit", "definition": "ab0t1+ab0t0carry", "description": "

ab

", "templateType": "anything", "can_override": false}, "ab1t0carry": {"name": "ab1t0carry", "group": "2digit", "definition": "(ab1t0-ab1t0last)/10", "description": "", "templateType": "anything", "can_override": false}, "ab0t1last": {"name": "ab0t1last", "group": "2digit", "definition": "mod(ab0t1pluscarry,10)", "description": "", "templateType": "anything", "can_override": false}, "ab0t0last": {"name": "ab0t0last", "group": "2digit", "definition": "mod(ab0t0,10)", "description": "", "templateType": "anything", "can_override": false}, "adigs": {"name": "adigs", "group": "2digit", "definition": "shuffle(1..9)[0..4]", "description": "

we want distinct digits so it is easier to refer to digits unambiguously. 

", "templateType": "anything", "can_override": false}, "ab1t1": {"name": "ab1t1", "group": "2digit", "definition": "abot[1]*atop[1]", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "\n", "maxRuns": 100}, "ungrouped_variables": ["twodigit1", "twodigit2", "threedigit1", "threedigit2", "twodigit3", "threedigit3"], "variable_groups": [{"name": "2digit", "variables": ["adigs", "atop", "abot", "atopnum", "abotnum", "aans", "ab0t0", "ab0t0last", "ab0t0carry", "ab0t1", "ab0t1pluscarry", "ab0t1last", "ab0t1carry", "ab1t0", "ab1t0last", "ab1t0carry", "ab1t1", "ab1t1pluscarry", "ab1t1last", "ab1t1carry", "asum1", "asum2", "aansone", "aansten", "aanshun", "aanstho"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": false, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

$\\var{atopnum}\\times\\var{abotnum} = $ [[0]]

", "stepsPenalty": "1", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Generally we set up $\\var{atopnum}\\times\\var{abotnum}$ with the ones and tens columns lined up vertically:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\var{atop[1]}$$\\var{atop[0]}$$\\times$
$\\var{abot[1]}$$\\var{abot[0]}$
$\\phantom{0}$
\n

\n

We need to multiply each digit in the bottom number by each digit in the top number whilst respecting their place values.

\n

 

\n

We multiply the digits in the ones column, that is, $\\color{green}{\\var{abot[0]}\\times \\var{atop[0]}}$.

\n

Since this is just $\\var{ab0t0}$ we write $\\var{ab0t0}$ under the line in the ones column.

\n

Since this is $\\var{ab0t0}$ we write the $\\var{ab0t0last}$ under the line in the ones column and carry the $\\var{ab0t0carry}$ into the tens column to be dealt with in the next step.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\color{red}{\\var{ab0t0carry}}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[0]}}}$$\\times$
$\\var{abot[1]}$$\\color{green}{\\var{abot[0]}}$
$\\color{red}{\\var{ab0t0last}}$
\n

\n

\n

We now multiply diagonally, $\\color{green}{\\var{abot[0]}\\times \\var{atop[1]}}$. 

\n

This just gives us $\\var{ab0t1}$ so we write $\\var{ab0t1}$ under the line in the tens column.

\n

This gives us $\\var{ab0t1}$ so we write this under the line with the $\\var{ab0t1last}$ in the tens column.

\n

This gives us $\\var{ab0t1}$ but we have to add the $\\var{ab0t0carry}$ we carried earlier and so we write $\\var{ab0t1pluscarry}$ under the line with the $\\var{ab0t1last}$ in the tens column.

\n

This gives us $\\var{ab0t1}$ but we have to add the $\\var{ab0t0carry}$ we carried earlier and so we write $\\var{ab0t1pluscarry}$ under the line in the tens column.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
  $\\color{green}{\\overset{{\\var{ab0t0carry}}}{\\var{atop[1]}}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[1]}}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
 $\\var{abot[1]}$$\\color{green}{\\var{abot[0]}}$ 
$\\color{red}{\\var{ab0t1carry}}$ $\\phantom{0}$$\\color{red}{\\var{ab0t1last}}$${\\var{ab0t0last}}$ 
\n

\n

We are now finished with the digit $\\var{abot[0]}$ and move on to work with the $\\var{abot[1]}$ in the tens column. Since this is really a $\\var{abot[1]*10}$ we place a zero in the ones column on the next line to pad our numbers out. We also crossout or erase any carry marks that we have used.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\var{abot[1]}$$\\var{abot[0]}$
${\\var{ab0t1carry}}$$\\phantom{0}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$
$\\color{red}0$
\n

\n

We now multiply along the other diagonal, that is, $\\color{green}{\\var{abot[1]}\\times\\var{atop[0]}}$.

\n

Since this is just $\\var{ab1t0}$ we write $\\var{ab1t0}$ under the line in the tens column.

\n

Since this is $\\var{ab1t0}$ we write the $\\var{ab1t0last}$ under the line in the tens column and carry the $\\var{ab1t0carry}$ into the tens column to be dealt with in the next step.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\color{red}{\\var{ab1t0carry}}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[0]}}}$$\\times$
$\\color{green}{\\var{abot[1]}}$$\\var{abot[0]}$
${\\var{ab0t1carry}}$$\\phantom{0}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$
$\\color{red}{\\var{ab1t0last}}$${0}$
\n

\n

We now multiply the digits in the tens column, that is, $\\color{green}{\\var{abot[1]}\\times \\var{atop[1]}}$. 

\n

This just gives us $\\var{ab1t1}$ so we write $\\var{ab1t1}$ under the line in the hundreds column.

\n

This gives us $\\var{ab1t1}$ so we write this under the line with the $\\var{ab1t1last}$ in the hundreds column.

\n

This gives us $\\var{ab1t1}$ but we have to add the $\\var{ab1t0carry}$ we carried earlier and so we write $\\var{ab1t1pluscarry}$ under the line with the $\\var{ab1t1last}$ in the hundreds column.

\n

This gives us $\\var{ab1t1}$ but we have to add the $\\var{ab1t0carry}$ we carried earlier and so we write $\\var{ab1t1pluscarry}$ under the line in the hundreds column.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\color{green}{\\overset{{\\var{ab1t0carry}}}{\\var{atop[1]}}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[1]}}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\color{green}{\\var{abot[1]}}$$\\var{abot[0]}$
${\\var{ab0t1carry}}$$\\phantom{0}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$
$\\color{red}{\\var{ab1t1carry}}$ $\\phantom{0}$$\\color{red}{\\var{ab1t1last}}$${\\var{ab1t0last}}$${0}$
\n

\n

We now add the two results to get the total, that is, $\\color{green}{\\var{asum1}+\\var{asum2}}$.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{{\\var{ab1t0carry}}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\var{abot[1]}$$\\var{abot[0]}$
$\\color{green}{\\var{ab0t1carry}}$$\\phantom{0}$$\\color{green}{\\var{ab0t1last}}$$\\color{green}{\\var{ab0t0last}}$$+$
$\\color{green}{\\var{ab1t1carry}}$ $\\phantom{0}$$\\color{green}{\\var{ab1t1last}}$$\\color{green}{\\var{ab1t0last}}$$\\color{green}{0}$
$\\color{red}{\\var{aanstho}}$$\\phantom{0}$$\\color{red}{\\var{aanshun}}$$\\color{red}{\\var{aansten}}$$\\color{red}{\\var{aansone}}$
\n

\n

\n

The answer is therefore $\\var{aans}$.

"}], "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "aans", "maxValue": "aans", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always"}, {"name": "Multiplication 3 digit by 2 digit", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "tags": [], "metadata": {"description": "

Multiplication algorithm with integers

", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "statement": "

Write the following question down on paper and evaluate it without using a calculator.

\n

If you are unsure of how to do a question, click on Show steps to see the full working. Then, once you understand how to do the question, click on Try another question like this one to start again.

", "advice": "", "rulesets": {}, "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true}, "constants": [], "variables": {"ab0t0last": {"name": "ab0t0last", "group": "2digit", "definition": "mod(ab0t0,10)", "description": "", "templateType": "anything", "can_override": false}, "threedigit3": {"name": "threedigit3", "group": "Ungrouped variables", "definition": "random(101..999 except list(200..900#100) )", "description": "", "templateType": "anything", "can_override": false}, "aanstho": {"name": "aanstho", "group": "2digit", "definition": "mod((aans-aansone-aansten*10-aanshun*100)/1000,10)", "description": "", "templateType": "anything", "can_override": false}, "aanstth": {"name": "aanstth", "group": "2digit", "definition": "mod((aans-aansone-aansten*10-aanshun*100-aanstho*1000)/10000,10)", "description": "", "templateType": "anything", "can_override": false}, "ab0t1": {"name": "ab0t1", "group": "2digit", "definition": "abot[0]*atop[1]", "description": "", "templateType": "anything", "can_override": false}, "threedigit2": {"name": "threedigit2", "group": "Ungrouped variables", "definition": "random(101..999 except list(200..900#100) )", "description": "", "templateType": "anything", "can_override": false}, "ab1t2pluscarry": {"name": "ab1t2pluscarry", "group": "2digit", "definition": "ab1t2+ab1t1carry", "description": "", "templateType": "anything", "can_override": false}, "twodigit1": {"name": "twodigit1", "group": "Ungrouped variables", "definition": "random(11..99 except list(20..90#10) )", "description": "", "templateType": "anything", "can_override": false}, "asum1": {"name": "asum1", "group": "2digit", "definition": "abot[0]*atopnum", "description": "", "templateType": "anything", "can_override": false}, "aanshun": {"name": "aanshun", "group": "2digit", "definition": "mod((aans-aansone-aansten*10)/100,10)", "description": "", "templateType": "anything", "can_override": false}, "abot": {"name": "abot", "group": "2digit", "definition": "[adigs[4],adigs[3]]", "description": "

abot

", "templateType": "anything", "can_override": false}, "threedigit1": {"name": "threedigit1", "group": "Ungrouped variables", "definition": "random(101..999 except list(200..900#100) )", "description": "", "templateType": "anything", "can_override": false}, "ab1t1last": {"name": "ab1t1last", "group": "2digit", "definition": "mod(ab1t1pluscarry,10)", "description": "", "templateType": "anything", "can_override": false}, "twodigit3": {"name": "twodigit3", "group": "Ungrouped variables", "definition": "random(11..99 except list(20..90#10) )", "description": "", "templateType": "anything", "can_override": false}, "adigs": {"name": "adigs", "group": "2digit", "definition": "shuffle(1..9)[0..5]", "description": "

we want distinct digits so it is easier to refer to digits unambiguously. 

", "templateType": "anything", "can_override": false}, "ab1t1": {"name": "ab1t1", "group": "2digit", "definition": "abot[1]*atop[1]", "description": "", "templateType": "anything", "can_override": false}, "ab1t2carry": {"name": "ab1t2carry", "group": "2digit", "definition": "(ab1t2pluscarry-ab1t2last)/10", "description": "", "templateType": "anything", "can_override": false}, "asum2": {"name": "asum2", "group": "2digit", "definition": "10*abot[1]*atopnum", "description": "

sum2

", "templateType": "anything", "can_override": false}, "atop": {"name": "atop", "group": "2digit", "definition": "[adigs[2],adigs[1],adigs[0]]", "description": "", "templateType": "anything", "can_override": false}, "ab1t0last": {"name": "ab1t0last", "group": "2digit", "definition": "mod(ab1t0,10)", "description": "", "templateType": "anything", "can_override": false}, "ab0t2last": {"name": "ab0t2last", "group": "2digit", "definition": "mod(ab0t2pluscarry,10)", "description": "", "templateType": "anything", "can_override": false}, "ab1t1pluscarry": {"name": "ab1t1pluscarry", "group": "2digit", "definition": "ab1t1+ab1t0carry", "description": "", "templateType": "anything", "can_override": false}, "ab1t0": {"name": "ab1t0", "group": "2digit", "definition": "abot[1]*atop[0]", "description": "", "templateType": "anything", "can_override": false}, "ab1t0carry": {"name": "ab1t0carry", "group": "2digit", "definition": "(ab1t0-ab1t0last)/10", "description": "", "templateType": "anything", "can_override": false}, "ab0t1last": {"name": "ab0t1last", "group": "2digit", "definition": "mod(ab0t1pluscarry,10)", "description": "", "templateType": "anything", "can_override": false}, "ab1t2last": {"name": "ab1t2last", "group": "2digit", "definition": "mod(ab1t2pluscarry,10)", "description": "", "templateType": "anything", "can_override": false}, "ab1t2": {"name": "ab1t2", "group": "2digit", "definition": "abot[1]*atop[2]", "description": "", "templateType": "anything", "can_override": false}, "ab0t2pluscarry": {"name": "ab0t2pluscarry", "group": "2digit", "definition": "ab0t2+ab0t1carry", "description": "", "templateType": "anything", "can_override": false}, "ab0t2carry": {"name": "ab0t2carry", "group": "2digit", "definition": "(ab0t2pluscarry-ab0t2last)/10", "description": "", "templateType": "anything", "can_override": false}, "twodigit2": {"name": "twodigit2", "group": "Ungrouped variables", "definition": "random(11..99 except list(20..90#10) )", "description": "", "templateType": "anything", "can_override": false}, "ab0t0carry": {"name": "ab0t0carry", "group": "2digit", "definition": "(ab0t0-ab0t0last)/10", "description": "", "templateType": "anything", "can_override": false}, "ab1t1carry": {"name": "ab1t1carry", "group": "2digit", "definition": "(ab1t1pluscarry-ab1t1last)/10", "description": "", "templateType": "anything", "can_override": false}, "ab0t2": {"name": "ab0t2", "group": "2digit", "definition": "abot[0]*atop[2]", "description": "", "templateType": "anything", "can_override": false}, "ab0t1carry": {"name": "ab0t1carry", "group": "2digit", "definition": "(ab0t1pluscarry-ab0t1last)/10", "description": "", "templateType": "anything", "can_override": false}, "abotnum": {"name": "abotnum", "group": "2digit", "definition": "abot[1]*10+abot[0]", "description": "

botnum

", "templateType": "anything", "can_override": false}, "ab0t1pluscarry": {"name": "ab0t1pluscarry", "group": "2digit", "definition": "ab0t1+ab0t0carry", "description": "

ab

", "templateType": "anything", "can_override": false}, "atopnum": {"name": "atopnum", "group": "2digit", "definition": "atop[2]*100+atop[1]*10+atop[0]", "description": "", "templateType": "anything", "can_override": false}, "aans": {"name": "aans", "group": "2digit", "definition": "atopnum*abotnum", "description": "", "templateType": "anything", "can_override": false}, "aansone": {"name": "aansone", "group": "2digit", "definition": "mod(aans,10)", "description": "", "templateType": "anything", "can_override": false}, "aansten": {"name": "aansten", "group": "2digit", "definition": "mod((aans-aansone)/10,10)", "description": "", "templateType": "anything", "can_override": false}, "ab0t0": {"name": "ab0t0", "group": "2digit", "definition": "atop[0]*abot[0]", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "\n", "maxRuns": 100}, "ungrouped_variables": ["twodigit1", "twodigit2", "threedigit1", "threedigit2", "twodigit3", "threedigit3"], "variable_groups": [{"name": "2digit", "variables": ["adigs", "atop", "abot", "atopnum", "abotnum", "aans", "ab0t0", "ab0t0last", "ab0t0carry", "ab0t1", "ab0t1pluscarry", "ab0t1last", "ab0t1carry", "ab0t2", "ab0t2pluscarry", "ab0t2last", "ab0t2carry", "ab1t0", "ab1t0last", "ab1t0carry", "ab1t1", "ab1t1pluscarry", "ab1t1last", "ab1t1carry", "ab1t2", "ab1t2pluscarry", "ab1t2last", "ab1t2carry", "asum1", "asum2", "aansone", "aansten", "aanshun", "aanstho", "aanstth"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

$\\var{atopnum}\\times\\var{abotnum} = $ [[0]]

", "stepsPenalty": "1", "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Generally we set up $\\var{atopnum}\\times\\var{abotnum}$ with the ones and tens columns lined up vertically:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\var{atop[2]}$$\\var{atop[1]}$$\\var{atop[0]}$$\\times$
$\\var{abot[1]}$$\\var{abot[0]}$
$\\phantom{0}$
\n

\n

We need to multiply each digit in the bottom number by each digit in the top number whilst respecting their place values.

\n

\n

We multiply the digits in the ones column, that is, $\\color{green}{\\var{abot[0]}\\times \\var{atop[0]}}$.

\n

Since this is just $\\var{ab0t0}$ we write $\\var{ab0t0}$ under the line in the ones column.

\n

Since this is $\\var{ab0t0}$ we write the $\\var{ab0t0last}$ under the line in the ones column and carry the $\\var{ab0t0carry}$ into the tens column to be dealt with in the next step.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\phantom{1}}{\\var{atop[2]}}$$\\overset{\\color{red}{\\var{ab0t0carry}}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[0]}}}$$\\times$
$\\var{abot[1]}$$\\color{green}{\\var{abot[0]}}$
$\\color{red}{\\var{ab0t0last}}$
\n

\n

\n

We now multiply diagonally, $\\color{green}{\\var{abot[0]}\\times \\var{atop[1]}}$. 

\n

This just gives us $\\var{ab0t1}$ so we write $\\var{ab0t1}$ under the line in the tens column.

\n

This gives us $\\var{ab0t1}$ so we write this under the line with the $\\var{ab0t1last}$ in the tens column.

\n

This gives us $\\var{ab0t1}$ but we have to add the $\\var{ab0t0carry}$ we carried earlier and so we write $\\var{ab0t1last}$ under the line in the tens column and carry the $\\var{ab0t1carry}$ into the hundreds column to be dealt with in the next step.

\n

This gives us $\\var{ab0t1}$ but we have to add the $\\var{ab0t0carry}$ we carried earlier and so we write $\\var{ab0t1pluscarry}$ under the line in the tens column.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\color{red}{\\var{ab0t1carry}}}{\\var{atop[2]}}$ $\\overset{\\phantom{1}}{\\var{atop[2]}}$${\\overset{{\\var{ab0t0carry}}}{\\color{green}{\\var{atop[1]}}}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[1]}}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\var{abot[1]}$$\\color{green}{\\var{abot[0]}}$
$\\color{red}{\\var{ab0t1last}}$${\\var{ab0t0last}}$
\n

\n

We now multiply diagonally, $\\color{green}{\\var{abot[0]}\\times \\var{atop[2]}}$. 

\n

This just gives us $\\var{ab0t2}$ so we write $\\var{ab0t2}$ under the line in the hundreds column.

\n

This gives us $\\var{ab0t2}$ so we write this under the line with the $\\var{ab0t2last}$ in the hundreds column.

\n

This gives us $\\var{ab0t2}$ but we have to add the $\\var{ab0t1carry}$ we carried earlier and so we write $\\var{ab0t2pluscarry}$ under the line with the $\\var{ab0t2last}$ in the hundreds column.

\n

This gives us $\\var{ab0t2}$ but we have to add the $\\var{ab0t1carry}$ we carried earlier and so we write $\\var{ab0t2pluscarry}$ under the line in the hundreds column.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{{\\var{ab0t1carry}}}{\\color{green}{\\var{atop[2]}}}$ $\\overset{\\phantom{1}}{\\color{green}{\\var{atop[2]}}}$${\\overset{{\\var{ab0t0carry}}}{\\var{atop[1]}}}$ ${\\overset{\\phantom{1}}{\\var{atop[1]}}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\var{abot[1]}$$\\color{green}{\\var{abot[0]}}$
$\\color{red}{\\var{ab0t2carry}}$$\\phantom{0}$$\\color{red}{\\var{ab0t2last}}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$
\n

\n

\n

We are now finished with the digit $\\var{abot[0]}$ and move on to work with the $\\var{abot[1]}$ in the tens column. Since this is really a $\\var{abot[1]*10}$ we place a zero in the ones column on the next line to pad our numbers out. We also cross out or erase any carry marks that we have used.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\phantom{1}}{\\var{atop[2]}}$ $\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\var{abot[1]}$$\\var{abot[0]}$
 $\\var{ab0t2carry}$$\\phantom{0}$${\\var{ab0t2last}}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$ 
$\\color{red}0$ 
\n

\n

We now multiply along the other diagonal, that is, $\\color{green}{\\var{abot[1]}\\times\\var{atop[0]}}$.

\n

Since this is just $\\var{ab1t0}$ we write $\\var{ab1t0}$ under the line in the tens column.

\n

Since this is $\\var{ab1t0}$ we write the $\\var{ab1t0last}$ under the line in the tens column and carry the $\\var{ab1t0carry}$ into the tens column to be dealt with in the next step.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{\\phantom{1}}{\\var{atop[2]}}$$\\overset{\\color{red}{\\var{ab1t0carry}}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[0]}}}$$\\times$
$\\color{green}{\\var{abot[1]}}$$\\var{abot[0]}$
$\\var{ab0t2carry}$$\\phantom{0}$${\\var{ab0t2last}}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$
$\\color{red}{\\var{ab1t0last}}$${0}$
\n

\n

\n

We now multiply the digits in the tens column, that is, $\\color{green}{\\var{abot[1]}\\times \\var{atop[1]}}$. 

\n

This just gives us $\\var{ab1t1}$ so we write $\\var{ab1t1}$ under the line in the hundreds column.

\n

This gives us $\\var{ab1t1}$ so we write this under the line with the $\\var{ab1t1last}$ in the hundreds column.

\n

This gives us $\\var{ab1t1}$ but we have to add the $\\var{ab1t0carry}$ we carried earlier and so we write $\\var{ab1t1last}$ under the line in the hundreds column and carry the $\\var{ab1t1carry}$ into the hundreds column to be dealt with in the next step.

\n

This gives us $\\var{ab1t1}$ but we have to add the $\\var{ab1t0carry}$ we carried earlier and so we write $\\var{ab1t1pluscarry}$ under the line in the hundreds column.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
 $\\overset{\\color{red}{\\var{ab1t1carry}}}{\\var{atop[2]}}$ $\\overset{\\phantom{1}}{\\var{atop[2]}}$ ${\\overset{{\\var{ab1t0carry}}}{\\color{green}{\\var{atop[1]}}}}$ $\\color{green}{\\overset{\\phantom{1}}{\\var{atop[1]}}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\color{green}{\\var{abot[1]}}$$\\var{abot[0]}$ 
${\\var{ab0t2carry}}$$\\phantom{0}$${\\var{ab0t2last}}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$ 
$\\color{red}{\\var{ab1t1last}}$${\\var{ab1t0last}}$${0}$ 
\n

\n

\n

\n

\n

We now multiply the final pair of digits, that is, $\\color{green}{\\var{abot[1]}\\times \\var{atop[2]}}$. 

\n

This just gives us $\\var{ab1t2}$ so we write $\\var{ab1t2}$ under the line in the thousands column.

\n

This gives us $\\var{ab1t2}$ so we write this under the line with the $\\var{ab1t2last}$ in the thousands column.

\n

This gives us $\\var{ab1t2}$ but we have to add the $\\var{ab1t1carry}$ we carried earlier and so we write $\\var{ab0t2pluscarry}$ under the line with the $\\var{ab1t2last}$ in the thousands column.

\n

This gives us $\\var{ab1t2}$ but we have to add the $\\var{ab1t1carry}$ we carried earlier and so we write $\\var{ab1t2pluscarry}$ under the line in the thousands column.

\n

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{{\\var{ab1t1carry}}}{\\color{green}{\\var{atop[2]}}}$ $\\overset{\\phantom{1}}{\\color{green}{\\var{atop[2]}}}$${\\overset{{\\var{ab1t0carry}}}{{\\var{atop[1]}}}}$ ${\\overset{\\phantom{1}}{\\var{atop[1]}}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\color{green}{\\var{abot[1]}}$$\\var{abot[0]}$ 
  $\\var{ab0t2carry}$$\\phantom{0}$${\\var{ab0t2last}}$${\\var{ab0t1last}}$${\\var{ab0t0last}}$  
$\\color{red}{\\var{ab1t2carry}}$$\\phantom{0}$$\\color{red}{\\var{ab1t2last}}$${\\var{ab1t1last}}$${\\var{ab1t0last}}$${0}$   
\n

\n

\n

We now add the two results to get the total, that is, $\\color{green}{\\var{asum1}+\\var{asum2}}$.

\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
$\\overset{{\\var{ab1t1carry}}}{\\var{atop[2]}}$ $\\overset{\\phantom{1}}{\\var{atop[2]}}$ $\\overset{{\\var{ab1t0carry}}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[1]}}$ $\\overset{\\phantom{1}}{\\var{atop[0]}}$$\\times$
$\\var{abot[1]}$$\\var{abot[0]}$ 
 $\\color{green}{\\var{ab0t2carry}}$$\\phantom{0}$$\\color{green}{\\var{ab0t2last}}$$\\color{green}{\\var{ab0t1last}}$$\\color{green}{\\var{ab0t0last}}$$+$
$\\color{green}{\\var{ab1t2carry}}$$\\phantom{0}$$\\color{green}{\\var{ab1t2last}}$$\\color{green}{\\var{ab1t1last}}$$\\color{green}{\\var{ab1t0last}}$$\\color{green}{0}$  
$\\color{red}{\\var{aanstth}}$ $\\phantom{0}$$\\color{red}{\\var{aanstho}}$$\\color{red}{\\var{aanshun}}$$\\color{red}{\\var{aansten}}$$\\color{red}{\\var{aansone}}$  
\n

\n

\n

The answer is therefore $\\var{aans}$.

"}], "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "aans", "maxValue": "aans", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "displayAnswer": "", "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always"}]}], "showstudentname": true, "name": "Addition, subtraction and multiplication algorithms", "timing": {"allowPause": true, "timedwarning": {"action": "none", "message": ""}, "timeout": {"action": "none", "message": ""}}, "navigation": {"showresultspage": "oncompletion", "preventleave": true, "showfrontpage": true, "allowregen": true, "onleave": {"action": "none", "message": ""}, "reverse": true, "browse": true}, "showQuestionGroupNames": false, "feedback": {"showanswerstate": true, "advicethreshold": 0, "allowrevealanswer": true, "feedbackmessages": [], "showactualmark": true, "showtotalmark": true, "intro": ""}, "type": "exam", "contributors": [{"name": "Ben Brawn", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/605/"}], "extensions": [], "custom_part_types": [], "resources": []}