Java程序设计基础第4章习题与自总
怎么说呢?不论什么编程题,都有很多种方法解决问题,最后能解决我们所提出的问题才是关键的东西,也是未来成为工程师所需要的能力。解决问题是关键,
当我们做好了问题解决的关键途径的时候,如果有着profound idea 更好的提升代码与实际操作的情况那是更好的了。
对今天写的东西,如果要打个分的话一个C+吧太次了,考虑的东西还有许多欠缺。需要掌握的东西还有很多。精通一门语言不是一天两天的事情,一步一个脚印,一口一个大馒头,来充实自己。
- package tincode;
- import java.io.*;
- import java.util.*;
- /**
- *
- * @author Administrator
- */
- public class Steven {
- public static void main(String[] args) throws IOException
- {
- Steven st = new Steven();
- st.fct4_11();
- }
- //Fibonacci数列双元
- public void fct1()
- {
- int p=0,n=1; //p代表前一个数,n代表后一个数
- System.out.println(p+""+n);
- for(int i =0;i<17;i++) //前16项
- {
- n+=p;
- p=n-p;
- System.out.println(n);
- }
- }
- //判断Fibonacci数,从键盘输入,判断是否; 暂时想不到更好的方法去查找是否斐波那契数列;
- public boolean fct2() throws IOException
- {
- int a = 0,b=1,n,num;
- String str;
- BufferedReader buf;
- buf = new BufferedReader(new InputStreamReader(System.in));
- System.out.print("请输入一个正整数");
- str=buf.readLine();
- num = Integer.parseInt(str);
- while(b<num){
- n=a+b;
- a=b;
- b=n;
- }
- if(num==b){
- System.out.println(num+"是Fibonacci数");
- return true;
- }
- System.out.println(num+"不是Fibonacci数");
- return false;
- }
- //从键盘输入一个0~100之间的成绩,输出相应的等级,分为5个等级优、良、中、及格和不及格;
- public void fct4_1() throws IOException
- {
- String str;
- BufferedReader buf;
- buf = new BufferedReader(new InputStreamReader(System.in));
- System.out.print("请输入成绩:");
- str = buf.readLine();
- int num = Integer.parseInt(str);
- num = num/10;
- switch(num){
- case 10:
- case 9:
- System.out.println("优");break;
- case 8:
- System.out.println("良");break;
- case 7:
- System.out.println("中");break;
- case 6:
- System.out.println("及格");break;
- default:
- System.out.println("不及格");break;
- }
- /*自我评测,虽然功能实现,但是如果出现输入1000、-22等这类不在范围的数值时,
- 应该提示所输入成绩不在范围之内。在得到的输入值后面加入判断语句,以用来规范值域。
- */
- }
- //从键盘输入一个0~100之间的成绩,输出相应等级和上一个类似;
- // A 85~100,B 70~84,C 60~69,D 0~59;
- /*
- 我有两种想法,1用所输入数值直接加5之后除10取整;2方法也差不多就是用四舍五入
- 但是我后面一想好像都是一回事,愚蠢。暂时想到这一种;
- */
- public void fct4_2() throws IOException
- {
- String str;
- BufferedReader buf;
- buf = new BufferedReader(new InputStreamReader(System.in));
- System.out.print("请输入成绩:");
- str = buf.readLine();
- int logic;
- int num = Integer.parseInt(str);
- num+=5;
- num = num/10;
- switch(num){
- case 10:
- case 9:
- System.out.println("A");break;
- case 8:
- logic = num>=85?1:2;
- //想到这我感觉我写不出来了,如果不加个判断我实在想不出有啥方法能给他分出来
- //然后我加了一个if
- if(logic==1){
- System.out.println("A");break;
- }else if(logic==2){
- System.out.println("B");break;
- }
- break;
- case 7:
- System.out.println("B");break;
- case 6:
- System.out.println("C");break;
- default:
- System.out.println("D");break;
- }
- }
- //编写一个程序,输出1~100之间所有既可以被3整除,又可被七整除的数。
- //这个没有限制条件,我先想到了直接用for循环和if条件判断。
- public void fct4_3(){
- for(int i=1;i<101;i++){
- if(i%3==0 && i%7==0){
- System.out.println(i);
- }
- }
- }
- //编写一个java应用程序,在键盘上输入数n,计算并输出1!+2!+...+n!的结果
- //我先想到了一个输入的n作为循环条件,阶乘的累加设一个sum,dup;
- public void fct4_4(){
- int n,sum=0,dup=1;
- System.out.print("请输入所求阶乘项数:");
- Scanner reader = new Scanner(System.in);
- n = reader.nextInt();
- for(int i=1;i<n+1;i++){
- dup*=i;
- sum+=dup;
- }
- System.out.println("和为"+sum);
- }
- //在键盘上输入数n,编程计算sum=1-1/2!+1/3!-...(-1)^(n-1)1/n!;
- //n,item,sum,一个像flag的-1判定值, for循环和if;
- public void fct4_5(){
- int n,dup=1,flag=-1;
- float item,sum=0;
- System.out.print("请输入一个整数:"); //缺少输入验证
- //如果输入的数值不符合条件用do while循环操作
- Scanner reader = new Scanner(System.in);
- n = reader.nextInt();
- for(int i=1;i<n+1;i++){
- dup*=i;
- item=(float)Math.pow(flag,i-1)*1/dup; //原本想用个乘方运算的符号可是java里面好像没有用了pow。
- sum +=item;
- }
- System.out.print(sum);
- }
- //求出所有的水仙花数
- public void fct4_6(){
- int ge,shi,bai,sum;
- for(int i =101;i<1000;i++){
- ge = i%10;
- shi = i%100/10;
- bai = i/100;
- sum=ge*ge*ge+shi*shi*shi+bai*bai*bai;
- if(i==sum){
- System.out.println(i);
- }
- }
- //写完这个感觉写的好low,哈哈,用了太多空间,时间复杂度也很高毕竟
- //循环了所有的范围内,如果做一些算法可以减少很多浪费的时间,可以不用判断明显的数值比如111,222,333,444...等等
- }
- //从键盘输入一个整数,判断一个数是否是一完全数,所有因数包括1不包括自身的和等于该数自身的数。如28
- //我想了想应该是超过一半就一定不可匹配了。循环到自身一半就可以了。
- public void fct4_7(){
- int n,sum=0;
- System.out.print("请输入一个整数:");
- Scanner reader = new Scanner(System.in);
- n = reader.nextInt();
- for(int i=1;i<=n/2;i++){
- if(n%i==0){
- sum+=i;
- }
- }
- if(sum==n){
- System.out.print("是完全数");
- }else{
- System.out.print("不是完全数");
- }
- }
- //计算并输出一个整数各位数字之和。
- public void fct4_8(){
- int n,sum=0;
- System.out.print("请输入一个整数:");
- Scanner reader = new Scanner(System.in);
- n = reader.nextInt();
- System.out.print("输入的数值是"+n);
- do{
- sum+=n%10;
- n/=10;
- }while(n!=0);
- System.out.print("各位数字之和是"+sum);
- }
- //从键盘上输入一个浮点数,然后将该浮点数的整数部分和小树部分分别输出。
- public void fct4_9(){
- float n,decimal;
- int zhengshu;
- int pointIndex;
- System.out.print("请输入一个整数:");
- Scanner reader = new Scanner(System.in);
- n = reader.nextFloat();
- zhengshu=(int)n;
- decimal=n-zhengshu;
- System.out.println("zhengshu="+zhengshu+"小数是"+decimal);
- //方法二:转换成字符串,用方法split按小数点前后分割
- String str = String.valueOf(n); //将float类型转换成字符串
- String[] ary = str.split("\\.");
- System.out.println(n + "整数部分为:" + ary[0]);
- System.out.println(n + "小数部分为:" + "0." + ary[1]);
- //方法三:同样转换成字符串,用方法indexOf标记小数点位置
- pointIndex = str.indexOf('.');
- System.out.println(n + "的整数部分为:" + str.substring(0,pointIndex));
- System.out.println(n + "的小数部分为:" + "0" + str.substring(pointIndex,str.length()));
- //https://blog.csdn.net/frozen122/article/details/111303303
- //看到这里还涉及到了一个正数和负数的问题。而且负数的整数部分和小数部分取还是不太一样的。
- //我还是缺失了很多东西啊!!
- }
- //设有一条长为3000m的绳子,每天减去一半,问需要几天时间,绳子的长度会短于5m;
- public void fct4_10(){
- int day=0;
- float length=3000;
- while(true){
- day++;
- length/=2;
- if(length<6){
- break;
- }
- }
- System.out.println("需要"+day+"天");
- }
- //输出一个左上三角, 1 3 6 10 15
- // 2 5 9 14
- // 4 8 13
- // 7 12
- // 11
- public void fct4_11(){
- //我堪称此操作为最骚操作;
- System.out.print("1 3 6 10 15\n" +
- "2 5 9 14\n" +
- "4 8 13\n" +
- "7 12\n" +
- "11\n");
- int i,j; //i行,j列
- int stic,orgin=1; //初值;
- int liecha=2,hangcha=1; //行差值,列差值;
- for(i=5;i>0;i--){
- stic=orgin;
- for(j=i;j>0;j--){
- System.out.print(orgin+" ");
- orgin+=liecha++;
- }
- System.out.println();
- liecha=2+hangcha;
- orgin=stic+hangcha++;
- }
- }
- //lie差和hang茶有差一的微妙关系利用这个微妙的关系,
- }
Java程序设计基础第4章习题与自总的更多相关文章
- Java程序设计基础作业目录(作业笔记)
持续更新中............. Java程序设计基础笔记 • [目录] 我的大学笔记>>> 第1章 初识Java>>> 1.1.4 学生成绩等级流程图练习 1 ...
- Java程序设计基础笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java程序设计基础作业目录(作业笔记) 第1章 Java程序设计基础笔记 • [第1章 初识Java] 第2章 Java程序 ...
- Java程序设计基础项目总结报告
Java程序设计基础项目总结报告 20135313吴子怡 一.项目内容 运用所学Java知识,不调用Java类库,实现密码学相关算法的设计,并完成TDD测试,设计运行界面. 二.具体任务 1.要求实现 ...
- 20145322第九周JAVA程序设计基础学习总结
20145322第九周JAVA程序设计基础学习总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联机数据库的标准规范.它定义一组标准类与接口,应用程序需要 ...
- Java程序设计基础
Java程序设计基础
- 【Java】《Java程序设计基础教程》第一章学习
一.Java概述 1.介绍了Java语言的由来 2.Java语言的特点:简单.面向对象.分布式.高效解释执行.健壮.安全.结构中立.可移植.高效率.多线程.动态 3.Java语言的实现机制,引入虚拟机 ...
- Java程序设计基础笔记 • 【第1章 初识Java】
全部章节 >>>> 本章目录 1.1 程序的概念及Java语言介绍 1.1.1 生活中的程序 1.1.2 计算机程序 1.1.3 算法和流程图 1.1.4 实践练习 1.2 ...
- Java程序设计基础笔记 • 【第5章 循环结构】
全部章节 >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...
- Java程序设计基础笔记 • 【第10章 数组】
全部章节 >>>> 本章目录 10.1 数组概述 10.1.1 数组优势 10.1.2 Java中的数组 10.1.3 数组的分类 10.2 一维数组 10.2.1 数组的 ...
随机推荐
- 微信小程序(一)-工具创建和结构配置说明 Stable Build
按装前特别说明: windows最好下载32位的,不然用到用到后面就出现"网络连接失败",然后就登录不上去了,打不开编辑器了! 问题 : 微信开发者工具网络连接失败, " ...
- DRF 视图家族及路由层补充
目录 视图家族 一.views视图类 1.APIView类 2.GenericAPIView类(generics中) 二.mixins类:视图辅助工具 1.RetrieveModelMixin 2.L ...
- docker ssh秘钥免密登录
一.概述 有一台跳板机,已经实现了免密登录后端服务器.但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器. 虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置 ...
- Codeforces Global Round 13
比赛地址 A(水题) 题目链接 题目: 给出一个\(01\)序列,有2种操作:1.将某个位置取反:2.询问\(01\)序列中第\(k\)大的数 解析: 显然维护1的数目即可 #include<b ...
- Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...
- 阅读源码,HashMap回顾
目录 回顾 HashMap简介 类签名 常量 变量 构造方法 tableSizeFor方法 添加元素 putVal方法 获取元素 getNode方法 总结 本文一是总结前面两种集合,补充一些遗漏,再者 ...
- docker nacos 集群部署
1.准备机器3台 192.168.101.14 192.168.101.15 192.168.101.16 2.初始化sql(如果我们要搭建集群的话,那么肯定是不能用内嵌的数据库,不然数据无法共享.集 ...
- 打造综合性智慧城市之朔州开发区 3D 可视化
前言 近几年,我国智慧城市建设步伐也不断加快,党中央和国务院也更加注重智慧园区的建设与发展,智慧园区建设与园区产业发展相结合,向着创新化.生态化发展,更加注重高新技术.绿色环保型等产业的发展,将管 ...
- 【odoo14】第十四章、CMS网站开发
第十四章.CMS网站开发** Odoo有一个功能齐全的内容管理系统(CMS).通过拖放功能,你的最终用户可以在几分钟内设计一个页面,但是在Odoo CMS中开发一个新功能或构建块就不是那么简单了.在本 ...
- 前瞻|Amundsen的数据血缘功能
目前,Amundsen并不支持表级别和列级别的数据血缘功能,也没有办法展示数据的来龙去脉. 作为Amundsen一项非常核心的功能,Lineage功能早已经提上日程,并进入设计与研发阶段.本位将展示此 ...