怎么说呢?不论什么编程题,都有很多种方法解决问题,最后能解决我们所提出的问题才是关键的东西,也是未来成为工程师所需要的能力。解决问题是关键,

当我们做好了问题解决的关键途径的时候,如果有着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章习题与自总的更多相关文章

  1. Java程序设计基础作业目录(作业笔记)

    持续更新中............. Java程序设计基础笔记 • [目录] 我的大学笔记>>> 第1章 初识Java>>> 1.1.4 学生成绩等级流程图练习 1 ...

  2. Java程序设计基础笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java程序设计基础作业目录(作业笔记) 第1章 Java程序设计基础笔记 • [第1章 初识Java] 第2章 Java程序 ...

  3. Java程序设计基础项目总结报告

    Java程序设计基础项目总结报告 20135313吴子怡 一.项目内容 运用所学Java知识,不调用Java类库,实现密码学相关算法的设计,并完成TDD测试,设计运行界面. 二.具体任务 1.要求实现 ...

  4. 20145322第九周JAVA程序设计基础学习总结

    20145322第九周JAVA程序设计基础学习总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联机数据库的标准规范.它定义一组标准类与接口,应用程序需要 ...

  5. Java程序设计基础

    Java程序设计基础

  6. 【Java】《Java程序设计基础教程》第一章学习

    一.Java概述 1.介绍了Java语言的由来 2.Java语言的特点:简单.面向对象.分布式.高效解释执行.健壮.安全.结构中立.可移植.高效率.多线程.动态 3.Java语言的实现机制,引入虚拟机 ...

  7. Java程序设计基础笔记 • 【第1章 初识Java】

    全部章节   >>>> 本章目录 1.1 程序的概念及Java语言介绍 1.1.1 生活中的程序 1.1.2 计算机程序 1.1.3 算法和流程图 1.1.4 实践练习 1.2 ...

  8. Java程序设计基础笔记 • 【第5章 循环结构】

    全部章节   >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...

  9. Java程序设计基础笔记 • 【第10章 数组】

    全部章节   >>>> 本章目录 10.1 数组概述 10.1.1 数组优势 10.1.2 Java中的数组 10.1.3 数组的分类 10.2 一维数组 10.2.1 数组的 ...

随机推荐

  1. TERSUS无代码开发(笔记09)-简单实例前端样式设计

    前端常用样式设计 =========================================================================================== ...

  2. 自关联映射:一个表自己关联自己,此时从同一个表中查询,通过起别名将一张表变成两张表,使用join语句。

    实例1:id自关联. 隐式内连接: 实例二:编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id .返回结果 不要求顺序 . 查询结果格式如下例: Weather +--- ...

  3. SpringBoot(一):使用IDEA快速搭建一个SpringBoot项目(详细)

    环境: JDK1.8   Maven:3.5.4 1.打开IDEA,右上角选择File→New→Project 选择Spring Initializr(使用IDEA自带的插件创建需要电脑联网) 2.点 ...

  4. Hi3559AV100外接UVC/MJPEG相机实时采图设计(二):V4L2接口的实现(以YUV422为例)

    下面将给出Hi3559AV100外接UVC/MJPEG相机实时采图设计的整体流程,主要实现是通过V4L2接口将UVC/MJPEG相机采集的数据送入至MPP平台,经过VDEC.VPSS.VO最后通过HD ...

  5. 从客流统计到营销赋能,Re-ID加速实体商业数字化转型 | 爱分析洞见

    2020年中国实体商业受到突发疫情的重大影响.以危机为契机,实体商业加速数字化转型,利用创新应用服务自身业务.在此阶段,基于Re-ID(Person Re-identification,即行人再识别) ...

  6. 『笔记』2-SAT

    前置 \(SAT\) 是适定性( \(Satisfiability\) )问题的简称.一般形式为 \(k \ -\) 适定性问题,简称 \(k-SAT\) .而当 \(k>2\) 时该问题为 \ ...

  7. HTB系列之七:Bastard

    出品|MS08067实验室(www.ms08067.com) 这次挑战的是 HTB 的第7台靶机:Bastard 技能收获: PHP Unserilaize CMS Version Identify ...

  8. python基础学习之元组和字典的功能方法

    什么是元组?(tuple) emmmmmm,这个没必要深究吧,就是一排'元素',一行 格式: a = (1,2,3,4,5,6,7,8,9)用小括号表示的,极为元组. 其有序,且不可更改,可以对比st ...

  9. POJ_2253 Frogger 【最短路变形】

    一.题目 Frogger 二.分析 题意关键点就是那个青蛙距离.就是所有1到2的点的路径中,每条路径都可以确定一个最大值,这个最大值就是青蛙要跳的青蛙距离,然后要求这个青蛙距离最小值. 其实就是最短路 ...

  10. 2.pandas常用读取

    一.文本读写 名称 接收 代表(含义) 默认 filepath string 文件路径 无 sep string 分割符 ',' header Int/sequence 某行做列名 infer自动寻找 ...