「题目代码」P1054~P1059(Java)

P1054 猴子吃桃

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

public class Main
{
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int n=cin.nextInt(),x=1;
		for(int i=1;i!=n;++i)
		{
			x=(x+1)*2;
		}
		System.out.println(x);
	}
}

P1055 谭浩强C语言(第三版)习题6.11

虽然确实可以用sqrt来解决,但是初学者最好不要占这个便宜,老老实实按照题目的要求来锻炼自己的编程技能。

import java.util.*;
import java.io.*;
import java.math.*;
import java.lang.Character;

public class Main
{
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int n=cin.nextInt();
		double x=n,x_nxt=1/2.0*(x+n/x);
		while(Math.abs(x_nxt-x)>1e-5)
		{
			x=x_nxt;
			x_nxt=1/2.0*(x+n/x);
		}
		System.out.printf("%.3f\n", x);
	}
}

P1056 谭浩强C语言(第三版)习题7.1

在算法竞赛中有更优的筛法,这里仅为了展示最基础的筛法。

import java.util.*;
import java.io.*;
import java.math.*;
import java.lang.Character;

public class Main
{
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int n=cin.nextInt();
		boolean[] prime= new boolean[n+5];
		for(int i=1;i<=n;++i) prime[i]=true;
		prime[1]=false;
		for(int i=2;i<=n;++i)
		{
			if(prime[i])
			{
				for(int j=i*2; j<=n; j+=i)
				{
					prime[j]=false;
				}
			}
		}
		for(int i=2;i<=n;++i)
			if(prime[i])
				System.out.println(i);
				
	}
}

P1057 无题目

P1058 谭浩强C语言(第三版)习题7.3

import java.util.*;
import java.io.*;
import java.math.*;
import java.lang.Character;

public class Main
{
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int[][] arr=new int[3][3];
		for(int i=0;i!=3;++i)
			for(int j=0;j!=3;++j)
				arr[i][j]=cin.nextInt();
		System.out.println(String.valueOf(arr[0][0]+arr[1][1]+arr[2][2])+
						   " "+String.valueOf(arr[0][2]+arr[1][1]+arr[2][0]));
	}
}

P1059 谭浩强C语言(第三版)习题7.4

注意,数据可能是倒序的。

import java.util.*;
import java.io.*;
import java.math.*;
import java.lang.Character;

public class Main
{
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int[] arr=new int[9];
		int larger=-1;
		for(int i=0;i!=9;++i)
		{
			arr[i]=cin.nextInt();
			if(i!=0)
			{
				if(larger==-1 && arr[i]!=arr[i-1])
				{
					larger=(arr[i]>arr[i-1])?1:0; // Ugly hack here.
					// If all the same, the data is an error.
				}
			}
		}
	   	int value=cin.nextInt();
		boolean hasPrint=false;
		for(int i=0;i!=9;++i)
		{
			if(!hasPrint)
			{
				if((larger==1 && value<=arr[i]) || (larger==0 && value>=arr[i]))
				{
					System.out.println(value);
					hasPrint=true;
				}
			}
			System.out.println(arr[i]);
		}
	}
}
posted @ 2018-10-16 23:54  ISoLT  阅读(141)  评论(0编辑  收藏  举报