数学建模社区-数学中国
标题:
大家来练习5
[打印本页]
作者:
为你奋斗
时间:
2010-3-11 18:14
标题:
大家来练习5
http://flashupload/swf/100311101402dvpgk6mo4l4x.jpg
作者:
lxgjianmo
时间:
2010-3-11 18:58
好题!!!!!!!!!!!!!!!!!!
作者:
数学者
时间:
2010-3-11 20:27
有空可以多做这类题,挺好的,呵呵~
作者:
nwave
时间:
2010-3-11 20:38
呵呵,不错。谁做出来了,可以和我交流。。。。。。。。。。。。。。。
作者:
sea_star666
时间:
2010-3-12 00:01
为什么没人发答案呢?
作者:
sea_star666
时间:
2010-3-12 00:03
关键是如何确定循环
作者:
sea_star666
时间:
2010-3-12 00:12
对于纯循环小数,转换方法是:循环节做分子;分母全是9,9的个数为循环节长度。。再约分即可
例:0.1111111...=1/9
0.123 123 123....=123/999=41/333
0.35 35 35..=35/99
对于混循环小数,转换方法是:分子为两数之差-----
被减数:小数点后第一位的数直到第一个循环节结束,这几个数字构成的数作为被减数;
减数:未参与循环的小数部分,
分母由9和0组成,9的个数为循环节长度,0的个数为未循环部分长度。。再约分即可
例:0.1 23 23 23 23....=(123-1)/990=122/990=61/495
0.73 865 865 865...=(73865-73)/99900=73792/99900=18448/24975
0.32 11111111...=(321-32)/900=289/900
作者:
sea_star666
时间:
2010-3-12 00:20
本帖最后由 sea_star666 于 2010-3-12 23:19 编辑
#include<stdio.h>
#define Max 100 /*小数点后最大位数*/
int Left[Max];
int Digit[Max]; /*记录每次的余数和商*/
int n,d,q,Top; /*q为循环字节的位置*/
void Init(void)
{
printf("ENTER N,D:");
scanf("%d %d",&n,&d);
}
void Cacl(void) /*计算*/
{
int i=0,j=1;
Digit[0]=n/d; /*求商*/
Left[0]=n%d; /*求余数*/
Top=0;
q=0; /*初始化商和余数*/
while(Left[Top]!=0&&j==1&&Top<100)
{
Top++; /*取下一个数组元素*/
Digit[Top]=(Left[Top-1]*10)/d; /*求商*/
Left[Top]=(int)(Left[Top-1]*10)%d; /*求余数*/
for(i=0;i<Top-1;i++)
{
if(Left[Top]==Left
) /*如果出现循环节则退出*/
{
q=i+1;
j=0;
break;
}
}
}
}
void Print(void) /*输出计算结果*/
{
int i;
printf("n/d= ");
if(Digit[0]!=0) printf("%d",Digit[0]);
if(Top>0) printf(".");
for(i=1;i<=Top;i++)
{
if(i==q) printf("(");
printf("%d",Digit
);
}
if(q>0) printf(")");
}
void main(void)
{
Init(); /*读入数据*/
Cacl(); /*计算*/
Print(); /*打印结果*/
}
作者:
mnpfc
时间:
2010-3-12 00:43
呵呵,顶楼上的
作者:
陈了
时间:
2010-3-12 09:36
呵呵呵呵。。。。顶楼上的!牛呀!
作者:
李——建辉
时间:
2012-1-13 08:19
没有体力啦,资料能发给我一份吗?我的邮箱是18633525948圈163邮箱,谢啦
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5