两个整数100与100000之间有多少整数其数字之和等于5??

luoxiongbo 2008-12-09 11:26:38
请求大家帮帮忙,用java或c语言都行,先谢谢了
...全文
615 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
waizqfor 2008-12-09
  • 打赏
  • 举报
回复
就是一个判定的问题 好好想想 自己编一个 有错再来问多好
expter 2008-12-09
  • 打赏
  • 举报
回复
那就要看 问效率了

怎么小的范围,效率都差不多!
xtting_8984313 2008-12-09
  • 打赏
  • 举报
回复
三位数:可以使用如下数值组合
5 0 0 (1)
4 1 0 (2 * 2 * 1)
3 2 0 (2 * 2 * 1)
3 1 1 (3 * 2 * 1 / 2)

四位数:
5 0 0 0 (1)
4 1 0 0 (2 * 3 * 2 * 1 / 2 )
3 2 0 0 (2 * 3 * 2 * 1 / 2 )
3 1 1 0 (3 * 3 * 2 * 1 / 2)
2 2 1 0 (3 * 3 * 2 * 1 / 2)
2 1 1 1 (4 )

......
仿佛比较罗嗦

如果写程序的话分两步
1、计算所有的可能存在的组合方式
2、对每个方式使用简单的排列,并且要考虑到重复计数问题
xtting_8984313 2008-12-09
  • 打赏
  • 举报
回复
三位数:可以使用如下数值组合
5 0 0 (1)
4 1 0 (2 * 2 * 1)
3 2 0 (2 * 2 * 1)
3 1 1 (3 * 2 * 1 / 2)

四位数:
5 0 0 0 (1)
4 1 0 0 (2 * 3 * 2 * 1)
3 2 0 0 (2 * 3 * 2 * 1)
3 1 1 0 (3 * 3 * 2 * 1)
2 2 1 0 (3 * 3 * 2 * 1)
2 1 1 1 (4 * 3 * 2 * 1)

......
仿佛比较罗嗦

ningweidong 2008-12-09
  • 打赏
  • 举报
回复

#include <iostream.h>
#include <windows.h>

BOOL f(int n)
{
int a[6] = {0}; //存放每一位的值
int i = 0; //循环变量
int temp = n; //存放输入参数

if ((n > 999999)||(n < 0)) //参数判断
{
return TRUE;
}

while (temp != 0)
{
//存放每一位的值
a[i] = temp%10;
temp /= 10;
i++;
}

temp = 0;
for (i=0; i<6; i++)
{
temp += a[i];
}

if (5 == temp)
{
return TRUE;
}
else
{
return FALSE;
}
}

void main()
{
int i = 0;
for (i=0; i<1000001; i++)
{
if (f(i))
{
cout << i << endl;
}
}
}
sy_hys 2008-12-09
  • 打赏
  • 举报
回复
沙发

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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