零基础学Java语言-翁凯老师
第四周编程题
题目1:
素数和(5分)
题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例:
2 4
输出样例:
15
时间限制:500ms内存限制:32000kb
参考代码
注意MOOC上提交修改类名为Main
import java.util.Scanner;
public class Sushuhe {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
int[] numbers=new int[201];
int cnt=1;
int num=2;
int sum=0;
while(cnt<=200)
{
int isPrime=1;
for(int i=2;i<num;i++)
{
if(num%i==0)
{
isPrime=0;
}
}
if(isPrime==1)
{
numbers[cnt]=num;
cnt++;
}
num++;
}
for(int i=n;i<=m;i++)
{
sum=sum+numbers[i];
}
System.out.println(sum);
}
}
题目2:
念整数(5分)
题目内容:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:
-30
输出样例:
fu san ling
时间限制:500ms内存限制:32000kb
参考代码
注意MOOC上提交修改类名为Main
import java.util.Scanner;
public class pinyin {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String[] str1=new String[]{"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int num=in.nextInt();
int onum=num;
int cnt=0;
// 数输入数字的位数
if(num==0)
{
cnt=1;
}
else
{
while(num!=0)
{
num=num/10;
cnt++;
}
}
String[] str2=new String[2*cnt-1];
if(onum<0)
{
System.out.print("fu ");
onum=-onum;
}
for(int i=(2*cnt-2);i>0;i=i-2)
{
str2[i]=str1[onum%10];
str2[i-1]=" ";
onum=onum/10;
}
str2[0]=str1[onum%10];
for(int i=0;i<(2*cnt-1);i++)
{
System.out.print(str2[i]);
}
}
}