永发信息网

读入自然数m和n(0<=m<=n<=1000),判断分数m/n式有限小数还是循环小数。如果式有限小

答案:1  悬赏:20  手机版
解决时间 2021-04-06 07:56
  • 提问者网友:愿为果
  • 2021-04-05 16:06
读入自然数m和n(0<=m<=n<=1000),判断分数m/n式有限小数还是循环小数。如果式有限小
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-04-05 16:52
import java.util.ArrayList;
import java.util.List;

public class Math {

public static void main(String[] args) {
int m;
int n;
int yushu;
int xunhuanwei;
int zhi;
for (n = 1; n <= 1000; n++) {
for (m = 1; m < n; m++) {
System.out.print(m+"/"+n+"=0.");
List list = new ArrayList();
yushu = m;
xunhuanwei = 0;
for (;;) {
yushu = yushu * 10;
if (list.contains(yushu)) {
list.clear();
list.add(yushu);
xunhuanwei++;
if(xunhuanwei==1)
System.out.print("(");
}
list.add(yushu);
zhi = yushu / n;
yushu = yushu % n;
if (xunhuanwei ==2){
System.out.print(")");
break;
}
System.out.print(zhi);
if (yushu == 0)
break;

}
System.out.println();
}
}

}

}追问用c语言怎么写啊追答两三年没有搞过C了,现在加班,晚上帮你弄一下吧,应该还可以弄出来。追问谢谢追答#include "stdafx.h"//这个无所谓是哪个

int list[100];
void list_clear();
int list_contains(int yushu);
void list_add(int yushu);
void main()
{
int m;
int n;
int yushu;
int xunhuanwei;
int zhi;
list_clear();
for (n = 1; n < 100; n++)
{
for (m = 1; m < n; m++)
{
printf("%d/%d=0.",m,n);
yushu = m;
xunhuanwei = 0;
for (;;)
{
yushu = yushu * 10;
if (list_contains(yushu))
{
list_clear();
xunhuanwei++;
if (xunhuanwei == 1)
printf("(");
}
list_add(yushu);
zhi = yushu / n;
yushu = yushu % n;
if (xunhuanwei == 2)
{
printf(")");
break;
}
printf("%d",zhi);
if (yushu == 0)
break;
}
list_clear();
printf("\n");
}
}
getchar();
}
void list_clear()
{
for (int i = 0; i < 100; i++)
{
if (list[i] == -1)
return;
list[i] = -1;
}

}
int list_contains(int yushu)
{
for (int i = 0; i < 100; i++)
{
if (list[i] == -1)
return 0;
if (list[i] == yushu)
return 1;
}
return 0;
}
void list_add(int yushu)
{
for (int i = 0; i < 100; i++)
{
if (list[i] == -1)
{
list[i]=yushu;
return;
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯