菜蛙


私信TA

用户名:hu2022

访问量:16284

签 名:

明日复明日,明日何其多。我生待明日,万事成蹉跎。

等  级
排  名 549
经  验 4384
参赛次数 0
文章发表 75
年  龄 0
在职情况 学生
学  校 哈工程
专  业

  自我简介:

题目:

按递增顺序依次列出所有分母为40,分子小于40的最简分数。

输出示例:1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21/40,23/40,27/40,29/40,31/40,33/40,37/40,39/40,

解题思路:

最简分数即分子不能再与40约分,即两个数没有公因子。

1、可以先求出40的所有公因子;

2、再用分子对所有公因子求余;

3、若出现余数为0的情况,说明该分子可以约分,计算下一个;

4、否则输出该最简分数。


参考代码:

#include<stdio.h>

int main(void){
	int array[10]={0};
	int i,j=0,num=0,mark;
	
	for(i=2;i<40;i++){                    //求出40的所有因子(不包括1和40) 
		if(40%i==0){
			array[j] = i;
			j++;
			num++;
		}
	} 
	
	for(i=1;i<40;i++){
		mark = 1;
		for(j=0;j<num;j++){            //从1开始对40的所有因子求余 
			if(i%array[j]==0){
				mark = 0; 
			}
		}
		
		if(mark==1)                    //若求余全不为0,则该数字不可与40约分,输出即可 
		printf("%d/40,",i);
	}
	
	return 0;
}


 

0.0分

2 人评分

  评论区

j和num的值是一样的,没必要多设置一个
2022-11-25 21:28:16
  • «
  • 1
  • »