取出 5 个 1~9 中的数,使其倒数和为 1

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:11:35
列出所有可能
最好用vc实现
for(int i=1;i<=9;i++)
for(int j=i+1;j<=9;j++)
for(int k=j+1;k<=9;k++)
for(int m=k+1;m<=9;m++)
for(int n=m+1;n<=9;n++)
{
if(1/i+1/j+1/k+1/m+1/n == 1)
{
cout << i << j << k << m << n <<endl;
}

运行结果 有12345?? 个倒数和能为1吗》??明显错了

你的错在这里:
int/int==int,就是说int型的除以int型的仍然是int型的,默认的是只要商,比如说:5/8==0,8/5==1,6/2==3,89/20==4等等;
那么按你这样写出来的,只有1/1==1,其他的1/2==0,1/3==0.......
所以,所以,只要包含1,然后其他的是其他所有数字的组合就可以了
你把上面的程序中的int,改成double,或者float就可以了.

void main()
{
for(float i=1;i<=9;i++)
for(float j=i;j<=9;j++)
for(float k=j;k<=9;k++)
for(float m=k;m<=9;m++)
for(float n=m;n<=9;n++)
if(1/i+1/j+1/k+1/m+1/n == 1)
{
cout << i << j << k << m << n <<endl;
}
}

结果输出:
26999
28888
33999
44488
55555

如果,你要的是不同的数字,你可以这样写:

#include "iostream.h"

void main()
{
for(float i=1;i<=9;i++)
for(float j=i+1;j<=9;j++)
for(float k=j+1;k<=9;k++)
for(float m=k+1;m<=9;m++)
for(float n=m+1;n<=9;n++)
if(1/i+1/j+1/k+1/m+1/n == 1)
{
cout << i << j << k <<

取出 5 个 1~9 中的数,使其倒数和为 1 从1,3,5,7...,47,49这25个奇数中至少任意取出几个数,才能保证有两个数的和是52 1~100这100个自然数中,至少取出几个数,才能保证取出的数中有一个是质数? 从1,3,5,7...,199这100个自然数中取出若干个数.使得在所取出的数中,任何一个数都不是另一个数的 回文数中的平方数可以例举5个吗 1个盒子里,装着许多卡片5、10、15、25、30,这些数任意取出两张,想一想它们的和可能是多少? 已知100个产品中有10个次品,求任意取出的5个产品中次品数的期望值. 从N个数中第一次取出n个,放回,第二次取出m个,求两次取出相同的数x 的概率, 如何随机取出1-100 之间的一个数 高数:袋子中有3个白球、5个红球和2个黑球,从袋子中随意取出3个球,则是1白、1红、1黑的概率是多少?