<MEMORY>Project Euler NO13

import java.util.Scanner;

找出以下100个50位数之和的前十位数字。
//37107287533902102798797998220837590246510135740250
//46376937677490009712648124896970078050417018260538
//74324986199524741059474233309513058123726617309629
//91942213363574161572522430563301811072406154908250
//23067588207539346171171980310421047513778063246676
//89261670696623633820136378418383684178734361726757
//28112879812849979408065481931592621691275889832738
//44274228917432520321923589422876796487670272189318
//47451445736001306439091167216856844588711603153276
//70386486105843025439939619828917593665686757934951
//62176457141856560629502157223196586755079324193331
//64906352462741904929101432445813822663347944758178
//92575867718337217661963751590579239728245598838407
//58203565325359399008402633568948830189458628227828
//80181199384826282014278194139940567587151170094390
//35398664372827112653829987240784473053190104293586
//86515506006295864861532075273371959191420517255829
//71693888707715466499115593487603532921714970056938
//54370070576826684624621495650076471787294438377604
//53282654108756828443191190634694037855217779295145
//36123272525000296071075082563815656710885258350721
//45876576172410976447339110607218265236877223636045
//17423706905851860660448207621209813287860733969412
//81142660418086830619328460811191061556940512689692
//51934325451728388641918047049293215058642563049483
//62467221648435076201727918039944693004732956340691
//15732444386908125794514089057706229429197107928209
//55037687525678773091862540744969844508330393682126
//18336384825330154686196124348767681297534375946515
//80386287592878490201521685554828717201219257766954
//78182833757993103614740356856449095527097864797581
//16726320100436897842553539920931837441497806860984
//48403098129077791799088218795327364475675590848030
//87086987551392711854517078544161852424320693150332
//59959406895756536782107074926966537676326235447210
//69793950679652694742597709739166693763042633987085
//41052684708299085211399427365734116182760315001271
//65378607361501080857009149939512557028198746004375
//35829035317434717326932123578154982629742552737307
//94953759765105305946966067683156574377167401875275
//88902802571733229619176668713819931811048770190271
//25267680276078003013678680992525463401061632866526
//36270218540497705585629946580636237993140746255962
//24074486908231174977792365466257246923322810917141
//91430288197103288597806669760892938638285025333403
//34413065578016127815921815005561868836468420090470
//23053081172816430487623791969842487255036638784583
//11487696932154902810424020138335124462181441773470
//63783299490636259666498587618221225225512486764533
//67720186971698544312419572409913959008952310058822
//95548255300263520781532296796249481641953868218774
//76085327132285723110424803456124867697064507995236
//37774242535411291684276865538926205024910326572967
//23701913275725675285653248258265463092207058596522
//29798860272258331913126375147341994889534765745501
//18495701454879288984856827726077713721403798879715
//38298203783031473527721580348144513491373226651381
//34829543829199918180278916522431027392251122869539
//40957953066405232632538044100059654939159879593635
//29746152185502371307642255121183693803580388584903
//41698116222072977186158236678424689157993532961922
//62467957194401269043877107275048102390895523597457
//23189706772547915061505504953922979530901129967519
//86188088225875314529584099251203829009407770775672
//11306739708304724483816533873502340845647058077308
//82959174767140363198008187129011875491310547126581
//97623331044818386269515456334926366572897563400500
//42846280183517070527831839425882145521227251250327
//55121603546981200581762165212827652751691296897789
//32238195734329339946437501907836945765883352399886
//75506164965184775180738168837861091527357929701337
//62177842752192623401942399639168044983993173312731
//32924185707147349566916674687634660915035914677504
//99518671430235219628894890102423325116913619626622
//73267460800591547471830798392868535206946944540724
//76841822524674417161514036427982273348055556214818
//97142617910342598647204516893989422179826088076852
//87783646182799346313767754307809363333018982642090
//10848802521674670883215120185883543223812876952786
//71329612474782464538636993009049310363619763878039
//62184073572399794223406235393808339651327408011116
//66627891981488087797941876876144230030984490851411
//60661826293682836764744779239180335110989069790714
//85786944089552990653640447425576083659976645795096
//66024396409905389607120198219976047599490197230297
//64913982680032973156037120041377903785566085089252
//16730939319872750275468906903707539413042652315011
//94809377245048795150954100921645863754710598436791
//78639167021187492431995700641917969777599028300699
//15368713711936614952811305876380278410754449733078
//40789923115535562561142322423255033685442488917353
//44889911501440648020369068063960672322193204149535
//41503128880339536053299340368006977710650566631954
//81234880673210146739058568557934581403627822703280
//82616570773948327592232845941706525094512325230608
//22918802058777319719839450180888072429661980811197
//77158542502016545090413245809786882778948721859617
//72107838435069186155435662884062257473692284509516
//20849603980134001723930671666823555245252804609722
//53503534226472524250874054075591789781264330331690
public class Problem13
{
	public static void main(String[] args)
	{
		//输入数
		Scanner sc = new Scanner(System.in);
		int array[][] = new int [100][50];
		for (int i = 0; i < 100; i++)
		{
			String str = sc.nextLine();
			char ch[] = str.toCharArray();
			for(int j = 0; j < 50; j++)
			{
				array[i][j] = Integer.parseInt(ch[j]+"");
			}
		}
		
		
		long start = System.currentTimeMillis();
		System.out.print("answer:  ");
		
		add(array);
		
		
		
		long end = System.currentTimeMillis();
		System.out.print("time:  ");
		System.out.println(end - start);
	}
	
	static void add(int array[][])
	{
		String answer = "";
		int t = 0;
		for (int j = 50 - 1; j >= 0; j--)
		{
			for (int i = 0; i < 100; i++)
			{
				t += array[i][j];
			}
			
			answer = (t % 10) +"" + answer;
			
			t = t/10;
		}
		
		answer = t + answer;
		
		answer = answer.substring(0,10);
		System.out.println(answer);
		
	}
	
	
}
answer:  5537376230
time:  1
ThreadPoolTaskExecutor是Java并发包中`java.util.concurrent`下的一个组件,它用于在后台线程池中执行任务,而不是直接在主线程中运行。`submit()`方法是`ThreadPoolExecutor`中的一个重要方法,用于提交一个任务到线程池,并返回一个`Future`对象,该对象可以用来获取任务的结果或者检查任务的状态。 以下是一个简单的例子,展示了如何使用`ThreadPoolTaskExecutor`通知主线程: ```java import java.util.concurrent.*; public class Main { private static ExecutorService executor = Executors.newFixedThreadPool(5); // 创建一个固定大小的线程池 public static void main(String[] args) { Future<String> future = executor.submit(new Callable<String>() { // 使用Callable接口,它可以有返回值 @Override public String call() throws Exception { Thread.sleep(2000); // 模拟耗时操作 return "Task result"; // 返回任务结果 } }); try { // 主线程阻塞,等待任务完成 System.out.println("主线程开始等待任务结果..."); String result = future.get(); // 获取未来结果 System.out.println("任务结果: " + result); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } finally { // 关闭线程池,防止资源泄露 executor.shutdown(); } } } ``` 在这个例子中,`submit()`方法将`Callable`任务提交给线程池,主线程不会立即执行这个任务,而是继续运行。当`future.get()`被调用时,主线程会阻塞,直到任务完成后返回结果,或者抛出异常。`get()`方法会阻塞,直到任务完成或超时(默认无限等待)。 相关问题: 1. 为什么要使用`Future`对象来处理任务结果? 2. `Callable`和`Runnable`的区别是什么? 3. 如何设置`Future.get()`的超时时间?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值