代码改变世界

一道笔试题的搞笑解法

2012-06-26 22:38  javaspring  阅读(174)  评论(0编辑  收藏  举报

原题是

设计一个程序,求出712的729次方的最后4位数是多少?

对于这道题目,我们可以规矩的用一般方法解决,但更搞笑的是还有另种方法。我先贴出普通方法的代码

#include <iostream.h>
void main()
{
    int result=1;
    for(int i=0;i<729;i++)
    {
        result=result*712;
        if(result>=10000)
            result=result%10000;
    }
    cout<<result<<endl;

}
但更搞笑的是下面的Java代码

import java.math.BigInteger;


public class Algorithm {
	
	
	public static void main(String []args)
	{
		BigInteger s1=BigInteger.valueOf(1);
		BigInteger s2=BigInteger.valueOf(712);
		for(int i=0;i<729;i++)
		{
			s1=s1.multiply(s2);
		}
		System.out.println(s1.toString());
	}

}

用这种代码算出的结果是

287022115619204242094996863275012651610118320438731629146366903695428737973762980582807021
882359201136780865734580823703185610660096665135935034923812513829056609425157185910981367
483957426244158026395048727131658953752539849261131524040647245722353696061549540330669335
382805999366419843165508716006568081045572299797080240377903538967182877007112784194074063
045910278951771322944188443280930755055603891687792905288066084657917310340591847473121783
526536128857349938153654925591072003641406846682749216583645400650608724166584263215805730
327991025714466023391155363349912753289204979200202930424108994212756956894228131045011045
104302660087018507774213939390379395043985468952596148421277076689733945154825467033404374
633634293157264566482149387616789997290462410958503346278382916689567443784542064722038245
802839172778972702291451883459643398961955142914408154046476879647366526727782365625363658
184291223627240151310178388911588826615055640945601937928963217798796130462010892575389799
979284974266285531969324476893545473191436562904986432070748600255656017578189946620365359
076926161713011662420855868158927452424699904958493725130585798998346721071103020562482239
086800521787224424893941285585026173353090612068150731835391241959203629783612667114421848
264448852570426010306935802715311153544450884254992641142431908703434871166060616736482291
551512183842843416472073153119335914241515766760435107892298307946751569900638000736945160
821252981132769478582425474407728913059837663817484456811733949564113139446417226835058958
248191531342921921938114838354899219125039231764985602822464248210222601847609716775799016
971349309165219197572427105712578955612225082061318844050979553813497192992359782375550081
681555924158887663365614276959406559124697102789075771065752062639092838052543549124030697
705460759675117789505358108965398202525719192851425275658963218145317306018594148878791058
944984190905398548356574676205366664477297886734905922825559501943869355370779918393382939
802975316095624455628784080884525199050259498883072920429022838489620958090181115097963551
7694410752





使用这种方法,别说是最后四位,前四位也可以算出来。完全无视出题人的苦心。呵呵。大神就在CSDN。