1、要将四位数显示,每次操作可以选择移动光标(移动到相邻的位置)或者显示数字,计算最少需要多少次操作。
2、用flag表示当前光标位置,sum为记录操作次数,取出每一位,光标大于该位数,sum+=flag-该数;该位数大于光标,sum+=该数-flag。做完光标位置更新成该数,且要显示该数,sum++。
3、最后输出sum。
- #include
- #include
- using namespace std;
- int main()
- {
- int n;
- cin >> n;
- while (n)
- {
- string t;
- int a = 0, flag = 1, sum = 0,k=0;
- int d[4];
- cin >> t;
- for (int i = 0; i <= 3; i++)
- d[i] = t[i] - '0';
- for (int i = 0; i <=3; i++)
- {
- if (d[i] == 0)
- d[i] = 10;
- while (d[i] != flag)
- {
- if (flag < d[i])
- {
- sum += d[i] - flag;
- flag = d[i];
- }
- if (flag > d[i])
- {
- sum += flag - d[i];
- flag = d[i];
- }
- }
- sum++;
- }
- cout << sum << endl;
- n--;
- }
- }