JavaDay04循环题目的简单思路(菱形,日历)随机数,函数
2017-08-01 11:03
288 查看
1.画菱形(通过起始位置,中心位置)
public static void print1(int row){
int center = row/2 + 1;
int start = center;
int end = center;
boolean flag = true; //上三角形
for(int i=1;i<=row;i++){
for(int j=1;j<=row;j++){
if(j>=start&&j<=end){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
if(start==1){
flag = false;
}
if(flag==true){
start--;
end++;
}else{
start++;
end--;
}
}
}
2.日历
解析:
1.1970.1.1是周四
2.获得1970.1.1到当前月的天数
3.获得当前月的第一天是周几?
import java.util.Scanner;
public class Demo4{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scan.nextInt();
System.out.println("请输入月份:");
int month = scan.nextInt();
int week = 4;
int day = 31;//这个月的天数
//总共天数
total = totalDay(year,month);
//计算这个月份第一天是星期几
week = (total-1+4)%7+1;
//这个月的天数
day = monthDay(year,month);
//打印
print(week,day);
}
//判断是否是闰年
public static int run(int year){
if((year%4==0&&year%100!=0)||(year%400==0)){
return 366;
}else{
return 365;
}
}
//这个月的天数
public static int monthDay(int year,int month){
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
return 31;
}else if(month==4||month==6||month==9||month==11){
return 30;
}else{
if(run(year)==366){
return 29;
}else{
return 28;
}
}
}
//总天数
public static int totalDay(int year,int month){
int total = 0;//1970年1月1日到现在的总共天数
//计算1970年到输入的年份月份总共的天数
for(int i=1970;i<year;i++){
total += run(i);
}
for(int j=1;j<month;j++){
total += monthDay(year,j);
}
return total;
}
//打印日历
public static void print(int week,int day){
int d = 1;
System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日");
//日历1号之前的空格
while(d<week){
System.out.print("\t");
d++;
}
for(int i=1;i<=day;i++){
System.out.print(i+"\t");
//换行
if(week%7==0){
System.out.println();
}
week++;
}
}
}
3.获得一个随机的四位正整数
Math.random() 取值范围[0,1)
int random = (int)(Math.random()*9000)+1000
4.break,continue 都有相当于goto的作用
outer:for(int i=0;i<5;i++){
System.out.println(i);
inner:for(int j=0;j<5;j++){
System.out.println(i);
continue outer; 或者break outer;
}
}
5. 函数的重载只与参数列表有关,与返回值无关
public static void print1(int row){
int center = row/2 + 1;
int start = center;
int end = center;
boolean flag = true; //上三角形
for(int i=1;i<=row;i++){
for(int j=1;j<=row;j++){
if(j>=start&&j<=end){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
if(start==1){
flag = false;
}
if(flag==true){
start--;
end++;
}else{
start++;
end--;
}
}
}
2.日历
解析:
1.1970.1.1是周四
2.获得1970.1.1到当前月的天数
3.获得当前月的第一天是周几?
import java.util.Scanner;
public class Demo4{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scan.nextInt();
System.out.println("请输入月份:");
int month = scan.nextInt();
int week = 4;
int day = 31;//这个月的天数
//总共天数
total = totalDay(year,month);
//计算这个月份第一天是星期几
week = (total-1+4)%7+1;
//这个月的天数
day = monthDay(year,month);
//打印
print(week,day);
}
//判断是否是闰年
public static int run(int year){
if((year%4==0&&year%100!=0)||(year%400==0)){
return 366;
}else{
return 365;
}
}
//这个月的天数
public static int monthDay(int year,int month){
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
return 31;
}else if(month==4||month==6||month==9||month==11){
return 30;
}else{
if(run(year)==366){
return 29;
}else{
return 28;
}
}
}
//总天数
public static int totalDay(int year,int month){
int total = 0;//1970年1月1日到现在的总共天数
//计算1970年到输入的年份月份总共的天数
for(int i=1970;i<year;i++){
total += run(i);
}
for(int j=1;j<month;j++){
total += monthDay(year,j);
}
return total;
}
//打印日历
public static void print(int week,int day){
int d = 1;
System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日");
//日历1号之前的空格
while(d<week){
System.out.print("\t");
d++;
}
for(int i=1;i<=day;i++){
System.out.print(i+"\t");
//换行
if(week%7==0){
System.out.println();
}
week++;
}
}
}
3.获得一个随机的四位正整数
Math.random() 取值范围[0,1)
int random = (int)(Math.random()*9000)+1000
4.break,continue 都有相当于goto的作用
outer:for(int i=0;i<5;i++){
System.out.println(i);
inner:for(int j=0;j<5;j++){
System.out.println(i);
continue outer; 或者break outer;
}
}
5. 函数的重载只与参数列表有关,与返回值无关
相关文章推荐
- 第18周oj平台题目②--帮警长数一数【循环、分支简单综合】
- 循环与判断/利用函数的简单实例/使用对象/列举对象属性
- leetcode -- Text Justification -- string操作的题目,思路简单,但是难以写对
- 一个js简单的日历显示效果的函数
- 实验吧三道sql注入题目解题思路以及当中至少点整理(简单的SQL注入、简单的SQL注入2、简单的SQL注入)
- 用JS编写日历的简单思路
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- postgresql实现简单的循环函数
- php简单日历函数
- 猴子吃桃问题,简单循环,函数
- 用JS编写日历的简单思路
- php简单日历函数
- java基础 break continue在循环中的作用及随机数与函数
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- php随机数怎么获取?一个简单的函数就能生成
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- java基础-循环和嵌套及随机数、函数
- C语言中strand() rand() time()函数的简单介绍及获取随机数的方法
- 一个题目引发的闭包、函数声明以及作用域的简单思考
- SQLserver用游标实现循环 和 简单的量值函数