循环节
输入两个正整数 n、m,求n除以m的结果,如果能除尽,则输出其准确值,否则输出其循环部分。
如: n=2 m=16 则输出 0.125
n=1 m=7 则输出 142857
数据规模:(1< n , m <10000)
pascal题目
我不会编啊!
求此题目解
答案:2 悬赏:50 手机版
解决时间 2021-02-23 21:55
- 提问者网友:斑駁影
- 2021-02-23 07:58
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-02-23 09:10
pascal已经很就没有用了,给你一个c的程序,你自己学习一下好了。
因为你要求的范围(1< n , m <10000) 太大,因此我做了一些简化,计算(1< n , m <100),你自己看着扩大数组好了。
使用数组精确计算M/N(0
*问题分析与算法设计
由于计算机字长的限制,常规的浮点运算都有精度限制,为了得到高精度的计算结果,就必须自行设计实现方法。
为了实现高精度的计算,可将商存放在一维数组中,数组的每个元素存放一位十进制数,即商的第一位存放在第一个元素中,商的第二位存放在第二个元素中....,依次类推。这样就可以使用数组不表示一个高精度的计算结果。
进行除法运算时可以模拟人的手工操作,即每次求出商的第一位后,将余数乘以10,再计算商的下一位,重复以上过程,当某次计算后的余数为0 时,表示M/N为有限不循环小数某次计算后的余数与前面的某个余数相同时,则M/N为无限循环小数,从该余数第一次出现之后所求得的各位数就是小数的循环节。
程序具体实现时,采用了数组和其它一些技巧来保存除法运算所得到的余数和商的各位数。
*程序与程序注释
#include
int remainder[101],quotient[101];
void main()
{
int m,n,i,j;
printf("Please input a fraction(m/n)(<0
scanf("%d/%d",&m,&n);
printf("%d/%d it's accuracy value is:0.",m,n);
for(i=1;i<=100;i++)
{
remainder[m]=i;
m*=10;
quotient[i]=m/n;
m=m%n;
if(m==0)
{
for(j=1;j<=1;j++) printf("%d",quotient[j]);
break;
}
if(remainder[m]!=0)
{
for(j=1;j<=i;j++) printf("%d",quotient[j]);
printf("\n\tand it is a infinite cyclic fraction from %d\n",remainder[m]);
printf("\tdigit to %d digit after decimal point.\n",i);
break;
}
}
}
因为你要求的范围(1< n , m <10000) 太大,因此我做了一些简化,计算(1< n , m <100),你自己看着扩大数组好了。
使用数组精确计算M/N(0
*问题分析与算法设计
由于计算机字长的限制,常规的浮点运算都有精度限制,为了得到高精度的计算结果,就必须自行设计实现方法。
为了实现高精度的计算,可将商存放在一维数组中,数组的每个元素存放一位十进制数,即商的第一位存放在第一个元素中,商的第二位存放在第二个元素中....,依次类推。这样就可以使用数组不表示一个高精度的计算结果。
进行除法运算时可以模拟人的手工操作,即每次求出商的第一位后,将余数乘以10,再计算商的下一位,重复以上过程,当某次计算后的余数为0 时,表示M/N为有限不循环小数某次计算后的余数与前面的某个余数相同时,则M/N为无限循环小数,从该余数第一次出现之后所求得的各位数就是小数的循环节。
程序具体实现时,采用了数组和其它一些技巧来保存除法运算所得到的余数和商的各位数。
*程序与程序注释
#include
int remainder[101],quotient[101];
void main()
{
int m,n,i,j;
printf("Please input a fraction(m/n)(<0
printf("%d/%d it's accuracy value is:0.",m,n);
for(i=1;i<=100;i++)
{
remainder[m]=i;
m*=10;
quotient[i]=m/n;
m=m%n;
if(m==0)
{
for(j=1;j<=1;j++) printf("%d",quotient[j]);
break;
}
if(remainder[m]!=0)
{
for(j=1;j<=i;j++) printf("%d",quotient[j]);
printf("\n\tand it is a infinite cyclic fraction from %d\n",remainder[m]);
printf("\tdigit to %d digit after decimal point.\n",i);
break;
}
}
}
全部回答
- 1楼网友:十鸦
- 2021-02-23 10:19
na2co3 + 2hcl = 2nacl + h2o + co2↑
106 117 44
x y 2.2g
x=5.3g y= 5.85g
(1)纯碱样品中碳酸钠的质量
5.3g
(2)反应后所得氯化钠溶液中溶液的质量
136.7g+8g-2.2g=142.5g
(3)反应后所得氯化钠溶液的溶质质量分数
原混合物中氯化钠的质量为8g-5.3g=2.7g
总氯化钠的质量为5.85g+2.7g=8.55g
8.55g/142.5g*100%=6%
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯