#include
#include
const int maxn = 100000 + 5;
int ans[maxn];
void solve() //离线做法
{
memset(ans, 0, sizeof(ans));
for (int i = 1; i < maxn; i++)
{
int x = i, y = i;
while (x)
{
y += x % 10;
x /= 10;
}
if (ans[y] == 0 || i < ans[y]) //请问这句能否改为if (ans[y] == 0)即去掉后面的判断条件,如果不能,能否找个特例?感谢大神的帮助!!!
ans[y] = i;
}
}
int main()
{
int T, n;
solve();
scanf("%d", &T);
while (T--)
{
scanf("%d", &n);
printf("%d\n", ans[n]);
}
}
acm 2005 生成元问题 给出n(1≤n≤100000),求最小生成元。无解输出0
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- OginoChihiro 2017-07-31 11:16关注
基本的想法我能看懂,就是我注释的那行我不太懂,ans[y]初值为零的时候肯定小于i,那个i会不断变大,所以ans[y]已经得到赋值的时候肯定会小于i,即后面的判断语句(||i < ans[y])肯定是false,也就是可以省略掉,请问我这个想法对不对呢?
解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!