题目描述:
题目解读:
给定整数x和k,从0开始移动到x,要求每次移动的值,不能被k整除。
输出到达目标点x的最小移动次数和每次移动的值。
解题思路:
相当于在数轴上移动到目标点,且每次移动的数值不能被k整除。
分两种情况,如果x不能被k整除,直接一步到目标x即可;
如果x能被k整除,那么可以先移动到x-1,然后再移动1步。
代码实现:
#include <stdio.h>
void Solve() {
int x,k;
scanf("%d%d", &x,&k);
if (x % k != 0) {
printf("%d\n%d",1,x);
}
else {
printf("%d\n%d %d", 2, x - 1, 1);
}
printf("\n");
return;
}
int main() {
int t;
scanf("%d", &t);
while (t--) Solve();
return 0;
}
遇到的错误: