首页 > 其他分享 >[每天例题]蓝桥杯 C语言 最小公倍数

[每天例题]蓝桥杯 C语言 最小公倍数

时间:2023-05-06 18:44:22浏览次数:59  
标签:贡献度 公倍数 最小 long 蓝桥 int ai 例题

最小公倍数

题目

 

思路分析

方法一:

建立两个for循环,第一个for循环求最小公倍数,第二个for循环进行1至n的排列

方法二:

/*
最小公倍数n项可以计算前面的n-1项
例如;1、2、3、4、5、6的最小公倍数=1、2、3、4、5的最小公倍数和6的最小公倍数
我们定义一个贡献度:贡献度(ai)%贡献度(ai-1)==0,则贡献度(ai)/=贡献度(ai-1)
若1,2,3,4,5,6等6个数求最小公倍数,则贡献度(1)=1,贡献度(2)=2,贡献度(3)=3,贡献度(4)=4/贡献度(2)=2,贡献度(5)=5,贡献度(6)=6/贡献度(3)/贡献度(2)=1
因此1,2,3,4,5,6的最小公倍数为 1*2*3*2*5*1=60
因为答案最高超过18位,所以采用高精度乘法
最后的的结果就是乘数和相应位置上的被乘数的乘积加上后一位进位
*/

代码1(方法一)

此方法超时,未成功

#include<stdio.h>
int main()
{
	long long int i,j;
	int n;
	scanf("%d",&n);
	for(i=n;;i++)//i为最小公倍数,最小公倍数首先要大于等于最大的数 
	{
		for(j=1;j<=n;j++)//序列1至n 
		{
			if(i%j!=0)//此时i不为最小公倍数 
			{
				break;
			}
			if(j>n)//j为1至n的数 
			{
				break;
			}
		}
	}
	printf("%lld",i);
	return 0;
 } 

代码2

方法二与方法一的思路是一致的,只是方法二的正确率达到了50%

#include<stdio.h>
int main()
{
	long long int i,j;
	int n;
	scanf("%d",&n);
	for(i=n;;i++)
	{
		int count=0;
		for(j=1;j<=n;j++)
		{
			if(i%j==0)
			{
				count++;
			}
		}
		if(count==n)//即满足了1至n的最小公倍数 
		{
			printf("%lld",i);
			break;
		}
	 } 
	return 0;
 } 

代码3(方法二)

此代码在编译软件上行得通,但是放进去验证会超时。。。

#include<stdio.h>
int main()
{
	int i,j;
	int n;
	int flag,t,jinwei;
	while(scanf("%d",&n)) 
	{
		int a[n+1];
		int lcm[1000]={0};//由于答案最大超过了long long int,故以此记录答案的每一位数字 
		lcm[0]=1;//首元素设置为1 
		for(i=1;i<=n;i++)
		{
			a[i]=i;
		}
		//求贡献度 
		for(i=4;i<=n;i++)//2,3质因数为其本身,所以从4开始分解 
		{
			for(j=2;j<=i/2;j++)//遍历从a[2]开始到a[i/2]的每一个数 
			{
				if(a[i]%a[j]==0)
				{
					a[i]/=a[j];//若a[j]为a[i]的质因数,则将a[i]分解 
				}
			}
		}
		//求完贡献度 
		jinwei=j=0;
		for(i=2;i<=n;i++)
		{
			if(a[i]!=1)//所有质因数之积则为最小公倍数,故跳过1 
			{
				flag=j; 
				j=-1;
				while(j<flag||jinwei)
				{
					j++;
					t=lcm[j]*a[i];
					lcm[j]=(t+jinwei)%10;
					jinwei=(t+jinwei)/10;
				}
			}
		}
		for(i=j;i>=0;i--)
		{
			printf("%d",lcm[i]);//输出最小公倍数 
		}
		printf("\n");
	}
	return 0;
 } 

运行结果

 

标签:贡献度,公倍数,最小,long,蓝桥,int,ai,例题
From: https://www.cnblogs.com/hcrzhi/p/17372140.html

相关文章

  • 指数分布和泊松过程(Exponential Distribution and Poisson Process)--2(指数分布的例
    例1Supposethatcustomersareinlinetoreceiveservicethatisprovidedsequentiallybyaserver;wheneveraserviceiscompleted,thenextpersoninlineenterstheservicefacility.However,eachwaitingcustomerwillonlywaitanexponentiallydist......
  • [每天例题]蓝桥杯 C语言 天干地支
    天干地支题目 思路分析1.我们首先定义两个二维数组,将天干和地支分别录入,或者建立两个指针录入天干地支2.选取一个年份作为基准,在这里选择的是2020年庚子年3.此时输入的年份便被分为三个部分:小于2020年,2020年,大于2020年4.小于2020年部分减去2020后得到一个负数,我们需要将......
  • [蓝桥杯 2017 国 C] 合根植物 题解
    题目传送门一道并查集模板题。没什么好说的,先给个并查集模板,神犇可以直接跳过。查找根:intfind_root(intn){if(fa[n]==n)returnn;returnfa[n]=find_root(fa[n]);}合并:voidmerge(intx,inty){intsx=find_root(x),sy=find_root(y);......
  • 蓝桥杯刷题笔记
    0杂//ASCII码数字-48A=65a=97//字符串分割//从下标0开始取n-1个字符str=str.substr(0,n-1)//二维vector的添加数据以及遍历vector<vector<int>>v;for(inti=0;i<2;i++){ vector<int>tmp; for(intj=0;j<2;j++) { tmp.push_back(j); } v.pu......
  • 蓝桥杯题单day1
    蓝桥杯题单day1(按顺序)bfs+dfshttps://www.luogu.com.cn/problem/P1162https://www.luogu.com.cn/problem/P1378https://www.luogu.com.cn/problem/P8644https://www.lanqiao.cn/problems/280/learning/二分https://www.luogu.com.cn/problem/P8647https://www.luogu.co......
  • 题目 3158: 蓝桥杯2023年第十四届省赛真题-三国游戏(贪心)
    题目描述小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X,Y,Z(一开始可以认为都为0)。游戏有n个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第i个事件发生时会分别让X,Y,Z增加Ai,Bi,Ci。当游戏结束时(所有事件的发生与否已......
  • [每天例题]蓝桥杯 C语言 津津的储蓄计划
    津津的储蓄计划题目 题目要求1.每个月的月初妈妈给津津 300 元钱。2.实际花销和预算的相同。3.津津可以随时把整百的钱存在她那里,到了年末她会加上 20% 还给津津4每个月的月初如果她预计到这个月的月末手中还会有多于 100 元或恰好 100 元,她就会把整百的钱存在妈......
  • 【牛客编程题】Python机器学习(入门例题5题)
    【牛客编程题】Python机器学习(入门例题5题)做题链接:https://www.nowcoder.com/exam/oj?page=1&tab=Python篇&topicId=329文章目录AI1鸢尾花分类_1AI2鸢尾花分类_2AI3决策树的生成与训练-信息熵的计算AI4决策树的生成与训练-信息增益AI5使用梯度下降对逻辑回归进行训练AI1鸢尾......
  • [每天例题]蓝桥杯 C语言 单词去重
    单词去重题目https://www.lanqiao.cn/problems/2302/learning/?page=1&first_category_id=1&sort=students_count&name=%E5%8D%95%E8%AF%8D思路分析1.建立一个数组,注意数组的容纳范围,在这里有一个数据挖坑2.通过字符串函数,我们可以进行单词的重复判断,并完成去重处理代码 ......
  • 区间DP小结(附经典例题) 转载
    区间DP转载自:原博客一、定义​区间DP是线性动态规划的扩展,适用场景为每段区间的最优解可以通过更小区间的最优解得到。所以我们一般的解题思路都是先在小区间得到最优解,然后总结出递推公式,利用小区间的最优解求大区间的最优解。二、实现伪代码//mst(dp,0)初始化dp数组for......