将任意两个正整数$a$和$b$依次输入到程序中,程序将按照以下步骤执行:
步骤$1$:令$q$的值等于$0$;
步骤$2$:当$a<b$时,依次输出$q$和$a$的值,结束整个程序;否则将原来的$a$替换为$a-b$作为$a$,并且将$q$的值增加$1$作为$q$;当$a-b<b$时,依次输出$q$和$a$,否则重复执行步骤$2$.
现在向程序依次输入正整数$122$和$7$,请问程序输出$q$的值是_______,$a$的值是_______.
第一步将$q$的值初始化为$0$,第$2$步开始做对比,如果$a<b$,输出$q$和$a$的值,结束整个程序,现在显然$a\geq b$,那么$a$将变成$122-7=115$,$q=1$,并且判断$a-b$是否小于$b$,如果不是,重复执行步骤$2$,那么$115$继续减$7$,其实到这里就可以看出来是一直减下去,直到$a-b<b$,$122\div 7=17\cdots 3$,但是到第$16$次时,$a=122-16\times 7=10$,此时$a-b=10-7=3<b$的,那么应该输出$q=16$,$a=10$,不会再往下循环了,因此最终程序输出的$q=16$,$a=10$.
#include<iostream>
using namespace std;
int main()
{
int q=0, a=122, b=7;
while(a-b>=b)
{
if(a<b){
cout << "q的值:" << q <<endl;
cout << "a的值:" << a <<endl;
return 0;
}
else{
a=a-b;
q=q+1;
}
}
cout << "q的值:" << q <<endl;
cout << "a的值:" << a <<endl;
return 0;
}