浙大校赛--B(找规律+数学问题+大数)

B--Even Number Theory

 

思路:

每个偶数的e!!的阶乘就是求对e不断/2=x,然后将所有x相加,直到e = 0.因为所要求的就是

所有e和e之前所有正偶数所包含的2的个数(

也就是从2,4,6,……,2*(n-1),2*n,中每个数字所包含的最多的2的个数,

将n/2 = x,x就是相当于将2~2*n的偶数数字都提取出一个2,然后令n = x(相当于在1~x中找偶数,就是寻找还能被2整除的数字的个数,因为1~x中奇数,偶数各半,或者相差1)

然后再寻找n中的偶数,依次递归下去寻找,直到n == 0.

)。

 

c++大数:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
string div(string ss){
	string s1 = "",s2 = "";
	int x,t1=0,t2=0,len = ss.length(),i;
	for(i=0;i<len;i++){
		x = (ss[i]-'0'+t2*10);
		t1 = x/2;t2 = x%2;
		s1 += (char)(t1+'0');
	}
	for(i=0;i<len&&s1[i]=='0';i++);
	if(i>=len) return "0";
	for(;i<len;i++) s2+=s1[i]; 
	return s2;
}
string add(string s1,string s2){
	if(s1.length()<s2.length()){
		string tp = s1;
		s1 = s2;
		s2 = tp;
	}
	int i,j,l1 = s1.length(),l2 = s2.length();
	for(i=l1-1,j=l2-1;i>=0;i--,j--){
		int x = (s1[i]-'0')+(j>=0?(s2[j]-'0'):0);
		if(x>=10){
			s1[i] = (char)(x%10+'0');
			if(i>0) s1[i-1]++;
			else s1 = "1"+s1;
		}else
			s1[i] = (char)(x+'0');
	}
	return s1;
}
int main(void)
{
	string ss,ans;
	int T,i,j;
	cin>>T;
	while(T--){
		cin>>ss;
		ans = "0";
		while(ss!="0"){
			ss = div(ss);
			ans = add(ans,ss);
			//cout<<ss<<"<---->"<<ans<<endl;
		}
		cout<<ans<<endl;
	}
	return 0;
}

 

 

JAVA大数:

import java.util.*;
import java.lang.*;
import java.math.BigInteger;


public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		BigInteger zero = BigInteger.valueOf(0);
		BigInteger two = BigInteger.valueOf(2);
		int T = input.nextInt();
		while(T!=0) {
			T--;
			BigInteger ans = BigInteger.valueOf(0);
			BigInteger x = input.nextBigInteger();
			while(x.compareTo(zero)!=0) {
				x = x.divide(two);
				ans = ans.add(x);
			}
			System.out.println(ans);
		}
	}
}

 

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。 Quartz的优势: 1、Quartz是一个任务调度框架(库),它几乎可以集成到任何应用系统中。 2、Quartz是非常灵活的,它让您能够以最“自然”的方式来编写您的项目的代码,实现您所期望的行为 3、Quartz是非常轻量级的,只需要非常少的配置 —— 它实际上可以被跳出框架来使用,如果你的需求是一些相对基本的简单的需求的话。 4、Quartz具有容错机制,并且可以在重启服务的时候持久化(”记忆”)你的定时任务,你的任务也不会丢失。 5、可以通过Quartz,封装成自己的分布式任务调度,实现强大的功能,成为自己的产品。6、有很多的互联网公司也都在使用Quartz。比如美团 Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度。   课程说明:在我们的日常开发中,各种大型系统的开发少不了任务调度,简单的单机任务调度已经满足不了我们的系统需求,复杂的任务会让程序猿头疼, 所以急需一套专门的框架帮助我们去管理定时任务,并且可以在多台机器去执行我们的任务,还要可以管理我们的分布式定时任务。本课程从Quartz框架讲起,由浅到深,从使用到结构分析,再到源码分析,深入解析Quartz、Spring+Quartz,并且会讲解相关原理, 让大家充分的理解这个框架和框架的设计思想。由于互联网的复杂性,为了满足我们特定的需求,需要对Spring+Quartz进行二次开发,整个二次开发过程都会进行讲解。Spring被用在了越来越多的项目中, Quartz也被公认为是比较好用的定时器设置工具,学完这个课程后,不仅仅可以熟练掌握分布式定时任务,还可以深入理解大型框架的设计思想。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值