(提交上去总说我超时,求大佬帮帮我!!!解决了有重筹)
题目:
一个正整数 n (10< n< 100), 表示要求满足的数位和。
输出
若干行,每行包含一个满足要求的5位或6位整数。
数字按从小到大的顺序排列。
如果没有满足条件的,输出:-1
样例输入
44
样例输出
99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499
我的答案:
#include<stdio.h>
int huiwen(int n)
{
int x, s = 0;
x = n;
while (1)
{
s = s * 10 + x % 10;
x = x / 10;
if (s == n)
{
return 1;
break;
}
}
}
int main()
{
int sum, i;
scanf("%d", &sum);
for (i = 10000; i < 1000000; i++)
{
if (huiwen(i) == 1)
{
if ((i % 10 * 2 + i / 10 % 10 * 2 + i / 100 % 10) == sum)
printf("%d", i);
else if ((i % 10 * 2 + i / 10 % 10 * 2 + i / 100 % 10) == sum)
printf("%d", i);
else
printf("-1");
}
}
}