for 如何按照一定规则递减

caicaihui 2013-05-22 04:50:27
如下代码


int x = 800;
for (int i = x; i >= 0; i = i - 50)
{
}



如果x为四位数,如x=3000,首次递减100
如果x为三位数,如x=800,首次递减50
如果x为二位数,如x=70,首次递减10
如果x为个位数,如x=4,首次递减1

关键在于下面的设计,如果x=800的时候,首次递减为50,当i到100以内的时候,递减为10,当i到10以内的时候递减为1,请问这样代码如何写?
...全文
80 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomjun1986 2013-05-22
  • 打赏
  • 举报
回复
for 可以实现,就是需要在for外面加一个变量。 的确是应该有while合理一些
引用 2 楼 kan6_8 的回复:
这种情况用for循环明显不能实现,改用其他的循环结构,如while int x = 3000; int xx = x; while (xx >= 0) { if (xx >= 1000) { xx = xx - 100; } else if (xx >= 100) { xx = xx - 50; } else if (xx >= 10) { xx = xx - 10; } else { xx = xx - 1; } }
kan6_8 2013-05-22
  • 打赏
  • 举报
回复
这种情况用for循环明显不能实现,改用其他的循环结构,如while int x = 3000; int xx = x; while (xx >= 0) { if (xx >= 1000) { xx = xx - 100; } else if (xx >= 100) { xx = xx - 50; } else if (xx >= 10) { xx = xx - 10; } else { xx = xx - 1; } }
tomjun1986 2013-05-22
  • 打赏
  • 举报
回复
int iX = 800; int iY=50; for (int i = iX; i > 0; i -= iY) { if (i > 99 & i <= 999) { iY = 10; } if (i > 9 && i <= 99) { iY = 1; } }

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧