java编程题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编程题相关的知识,希望对你有一定的参考价值。

四、 编程题
1. 参考上述java程序的框架,写一个完整的程序使用循环结构计算1+2+3+…+1000的和并输出运算结果。

2、写一个程序,允许用户依次输入多个姓名和住址,并能将用户的输入保存到文件中。当用户输入“quit”表示输入完毕,程序推出。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Demo

public static void main(String[] args)
System.out.println(求和(1000));
保存姓名和住址();


/**
* 求从0开始连续整数之和
* @param max 从0开始,一直加到max为止
* @return 和
*/
private static int 求和(int max)
int result = 0;
for(int i=0;i<=max;i++)
result += i;
return result;


private static void 保存姓名和住址()
System.out.println("请输入姓名和住址,用逗号隔开。输入‘quit’退出。");
String strInput = null;
File file = new File("姓名住址.txt"); //建立文件
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //接收控制台输入
BufferedWriter bw = null;
try
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))); //输出到文件
bw.append("姓名\t住址");
bw.newLine();
catch (FileNotFoundException e1)
e1.printStackTrace();
catch (IOException e)
e.printStackTrace();

while(true)
System.out.print("_>");
try
strInput = br.readLine();
if(strInput.equalsIgnoreCase("quit")) //不论quit大小写,退出程序
bw.flush();
break;
else
if(bw != null)
//不论姓名和住址的分隔符是英文逗号还是中文逗号,均替换为制表符,主要是为了输出的美观
bw.append(strInput.replaceFirst("[,,]", "\t"));
bw.newLine();


catch (IOException e)
e.printStackTrace();



try
//关闭输入和输出
if(br != null)
br.close();
if(bw != null)
bw.close();
catch(IOException e)
e.printStackTrace();


参考技术A 1.
class Number
public static void main(String[] args)
int sum=0;
for(int i=1;i<=1000;i++)
sum+=i;

System.out.println(sum);



2.
class User
public static void main(String[] args) throws Exception
String str;
Scanner sc = new Scanner(System.in);
PrintWriter writer = new PrintWriter(new FileWriter(new File("log.txt")), true);
while (true)
String name = sc.nextLine();
String addr;
if (name.equals("quit"))
writer.close();
return;
else
addr = sc.nextLine();
writer.println(name + "\t" + addr);



本回答被提问者采纳
参考技术B 1.
class Test
public static void main(String[] args)
int sum=0;
for(int i=1;i<=100;i++)
sum+=i;

System.out.println(sum);

Python和Java编程题

今天偶尔看到一个博客有贴了五十个编程题,决定以后两天左右做一道题

题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html

1.题目

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。

2.Java实现

Java中的通过创建对象,再来调用方法解决问题思想还是不太熟练

 1 public class ProfectNumber {
 2     /*
 3      * 定义计算数字的因子总和
 4      */
 5     public void GetProfectNumber(int a) {
 6         for(int i=2;i<a;i++) {
 7             int Sum = 0;
 8             for(int j=1;j<i;j++) {// 求数字i的出本身之外的因子
 9                 if(i%j==0) {
10                     Sum += j;
11                 }
12             }
13             if(i==Sum) {
14                 System.out.print(i+"、");
15             }
16         }
17     }
18     
19     public static void main(String args[]) {
20         ProfectNumber p = new ProfectNumber();//新建此类对象
21         p.GetProfectNumber(1000);//调用计算完数方法
22     }
23 }

 

3.Python实现

 1 # -*- coding: utf-8 -*-
 2 # 一个数等于除它本身之外的因子之和,称为完数
 3 def Factor(a, L):
 4     for j in range(1,a):
 5         if a%j == 0:
 6             L.append(j)
 7     return L
 8 
 9 if __name__ == __main__:
10     ProNumber = []
11     for i in range(2,1000):# 1不是完数,可以排除
12         A = []
13         FactorList = Factor(i, A)
14         if sum(FactorList) == i:
15             ProNumber.append(i)
16     print("1000以内总共有{}个完数,分别是".format(len(ProNumber)))
17     for index in range(0,len(ProNumber)):
18         print(ProNumber[index])

 

以上是关于java编程题的主要内容,如果未能解决你的问题,请参考以下文章

Java编程题

java编程题

java编程题

java 编程题集

JAVA编程题(AWT计算器)

JAVA TCP Socket编程 计算题