本文主要是介绍Educational Codeforces Round 122 A. Div. 7,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
给你一个整数 n。 您必须更改其中的最小位数,使得结果数字没有任何前导零并且可以被 7 整除。
如果有多种方法可以做到这一点,请打印其中任何一种。 如果给定的数字已经能被 7 整除,则保持不变。
输入
第一行包含一个整数 t (1≤t≤990)——测试用例的数量。
然后是测试用例,每个测试用例由一行组成,其中包含一个整数 n (10≤n≤999)。
输出
对于每个测试用例,打印一个不带任何前导零的整数——更改的结果(即可以被 7 整除的整数,可以通过更改 n 中的最小可能位数来获得)。
如果有多种方法可以应用更改,请打印任何结果数字。 如果给定的数字已经能被 7 整除,只需打印它。
题解
只需要满足被7整除这个条件并且需要改变位数最小,可以证明最多只需要改变一个位数即可使得数字满足条件,当原本的数字就可以被7整除时,直接输出本来的数字,否则我们一定可以改变个位数使得这个三位数被7整除,具体的做法是,将个位数从0-9循环一遍即可。
#include<bits/stdc++.h>
using namespace std;
int solve()
{int n;cin >> n;int tn = n - n % 10;if (n % 7 == 0)return n;for (int i = 0; i < 10; i++)if ((tn + i) % 7 == 0)return tn + i;
}
int main()
{int t;cin >> t;while (t--){cout << solve()<<endl;}
}
这篇关于Educational Codeforces Round 122 A. Div. 7的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!