题目链接:P6723 [COCI2015-2016#5] ZAMKA - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目描述
给定三个整数 L,D,X,你需要找到两个整数 N,M,使得:
- N 为满足条件的最小整数,L ≤ N ≤ D 且 N 的各位数字之和为 X;
- M 为满足条件的最大整数,L ≤ M ≤ D 且 M 的各位数字之和为 X。
保证 N,M 一定存在。
输入格式
输入共三行。
第一行一个整数 L,第二行一个整数 D,第三行一个整数 X。
输出格式
输出共两行。
第一行为一个整数 N,第二行为一个整数 M。
样例 #1
样例输入 #1
1
100
4
样例输出 #1
4
40
样例 #2
样例输入 #2
100
500
12
样例输出 #2
129
480
样例 #3
样例输入 #3
1
10000
1
样例输出 #3
1
10000
提示
数据规模与约定
对于 100% 的数据,1 <= L <= D <= 10^4,1 <= X <= 36。
说明
题目译自 COCI2015-2016 CONTEST #5 T1 ZAMKA。
AC code:
#include<iostream>
#include<algorithm>
using namespace std;
int l,d,x;
bool numSum(int num)
{
int sum = 0;
while(num > 0)
{
sum += num % 10;
num /= 10;
}
if(sum == x)
return true;
return false;
}
int main()
{
cin>>l>>d>>x;
for(int i = l ; i <= d ; i ++)
{
if(numSum(i))
{
cout<<i<<endl;
break;
}
}
for(int i = d ; i >= l ; i --)
{
if(numSum(i))
{
cout<<i<<endl;
break;
}
}
return 0;
}