sicily 1325

来源:互联网 发布:动态导入java 编辑:程序博客网 时间:2024/05/17 23:24
//这一题如果逐一枚举,就会超时!所以需要对一些不符合情况的数进行删除!#include "iostream"#include "math.h"using namespace std;int main(){int T;cin >> T;int *a = new int[T];for (int i = 0; i < T; i++){cin >> a[i];int count = 0, temp = a[i];while (temp > 0)//计算出输入的数字的位数{temp /= 10;count++;}int n = a[i] - count * 10;//一个generator数与原数相差最大不过它的位数乘以10!这个需要找规律才可以发现!while (n < a[i])//逐渐枚举出符合条件的数{int m = n;int sum = 0;while (n > 0){sum += n % 10;n = n / 10;}sum += m;if (sum == a[i]){cout << m << endl;break;}n = m + 1;if (n == a[i])cout << "0" << endl;}}} 

 
原创粉丝点击