一道编程题:)

hohoxcn 2003-09-20 12:30:43
设P(x)表示十进制正整数x的各位数字之积,编一程序求出满足P(x) = x*x - 10x -22的正整数。
...全文
59 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lianglianqing 2003-09-21
  • 打赏
  • 举报
回复
我来猜一下为什么:100*100-10*100-22-9*9*9=8249 〉0
lijiuhua0721 2003-09-20
  • 打赏
  • 举报
回复
main()
{int x,s;
for (x=1;x<100;x++;)
{s=x*x-10*x-22;
if (s>0) printf("%d\n",s);}}
xwdd 2003-09-20
  • 打赏
  • 举报
回复
x是多少位的十进制数呢?
ljfwarrior 2003-09-20
  • 打赏
  • 举报
回复
to(ilmlb)你说说为什么不能超过两位数????
yiminggw 2003-09-20
  • 打赏
  • 举报
回复
up
ilmlb 2003-09-20
  • 打赏
  • 举报
回复
不可能超过两位数:
#include <iostream>
using namespace std;
void main()
{
for (int a = 1; a < 10; a++)
for (int b = 0; b < 10; b++)
if (0 == 100*a*a + 19*a*b + b*b - 100*a - 10*b - 22)
cout << a << b << endl;
}
答案是12
lianglianqing 2003-09-20
  • 打赏
  • 举报
回复
答案是12,只有这一个值
lianglianqing 2003-09-20
  • 打赏
  • 举报
回复
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
int num1,num3;
cout<<"请输入求值范围:"<<endl;
cin>>num3;
cout<<"您所求的数是: ";
for(int j(1);j<=num3;j++)
{
int i=j,num2(1);
while(i>=1)
{
num1=i%10;
num2*=num1;
i=i/10;
}
if ((j*j-10*j-22)==num2)
cout<<setw(5)<<j;
}
cout<<endl;
system("pause");
}
Meyer 2003-09-20
  • 打赏
  • 举报
回复
int P(int x)
{
int result = 1;

while(x > 0)
{
result *= x%10;
x /= 10;
}

return result;
}

void main()
{
int i = 0;
while(++i)
{
int left = p(i);
int right = i*i - 10*i -22;
if(left == right)
{
printf("%d\n", i);
}
if(left < right)
break;
}
}

69,369

社区成员

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

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