| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 974 人关注过本帖
标题:[求助]又一道因式分解
只看楼主 加入收藏
tekkie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-2-7
收藏
 问题点数:0 回复次数:8 
[求助]又一道因式分解

已解决

[此贴子已经被作者于2006-4-11 12:51:17编辑过]

搜索更多相关主题的帖子: 因式 分解 
2006-02-08 14:26
tekkie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-2-7
收藏
得分:0 
顶!
2006-02-08 14:45
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

不知道你们老师有多严格,不过目前我只发现了输入2和100会出现*1的项,这个和:(a)如果幂的值为1,则不用写括号和1次幂;如:15=3*5。要求相违背


淘宝杜琨
2006-02-08 20:28
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

#include <stdio.h>
#include <conio.h>

int q(int i,int t) /*i^t 的计算*/
{
int s;
s=1;
for ( ;t;t--)
s=s*i;
return s;
}

main()
{
int N,a,i,t,n,m;
scanf("%d",&N); /*N为组数*/
for ( ;N;N--)
{
scanf("%d",&a); /*a为要分解的数*/
printf("%d=",a);
n=a;
m=1;

for (i=2;i<=a;i++)
{
while(a!=i) /*计算这个数包含因子i的个数t*/
{
t=0;
while (a%i==0)

{
t++;
a=a/i;
}
if (t==1)
{ /*i的个数为1,不带括号*/
printf("%d*",i);
m*=i;
}

else if (t>1)
{

if (q(i,t)==n)
printf("%d^%d\n",i,t); /*i^t等于要分解的数,不带括号*/

else
{
m*=q(i,t);
if(m==n)
printf("(%d^%d)\n",i,t); /*如果q(i,t)是最后一个因子,不带“*”*/
else
printf("(%d^%d)*",i,t); /*不是最后一个因子*/
}
}
else
break;
}
}
if(a!=1) /*如果a不是1,那它就是最后一个因子*/
printf("%d\n",a);

}
getch();


}

此程序借用楼主思路

[此贴子已经被作者于2006-2-9 23:15:13编辑过]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-09 01:27
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
4楼程序还有些潜在的问题,现在很难想通

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-09 05:36
tekkie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-2-7
收藏
得分:0 

解决了3楼提出的问题,我将程序改为
#include <stdio.h>

main()
{
int N,a,i,t,n,m,k;
scanf("%d",&N);
for ( ;N;N--)
{
scanf("%d",&a);
printf("%d=",a);
n=a;
m=0;k=0;
for (i=2;i<=a;i++)
{
t=0;
while (a%i==0)
{
t++;
a=a/i;
}
if (t==1)
{
if (a==1) {break;}
else {printf("%d",i);m=0;k++;if (a!=1) printf("*");continue;}
}
else if (t>1)
{
if ((a==1)&&(0==k)) {printf("%d^%d",i,t);m=1;break;}
else {printf("(%d^%d)",i,t);k++;m=1;if (a!=1) printf("*");continue;}
}
}
if (0==m) printf("%d",i);
printf("\n",a);
}
return 0;
}

但还是不行。。。。。大家再帮忙看看吧,在此谢过各位了。。。

[此贴子已经被作者于2006-2-10 10:35:51编辑过]

2006-02-10 10:30
cyuyan
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-2-10
收藏
得分:0 
问题在于:

楼住的程序运行时,是输入一组数据,输出一组数据.
按题目要求,是要求将N组数据都一起输入,然后N组结果一次输出.
2006-02-10 13:10
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用cyuyan在2006-2-10 13:10:00的发言:
问题在于:

楼住的程序运行时,是输入一组数据,输出一组数据.
按题目要求,是要求将N组数据都一起输入,然后N组结果一次输出.

做一点修改就行


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-10 21:56
tekkie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-2-7
收藏
得分:0 

晕,oj系统输入和输出是分开的
输出结果直接被记录,输入一条输出一条的情况,系统直接判断结果的。。。

2006-02-10 22:48
快速回复:[求助]又一道因式分解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017641 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved