2.3题
这题主要是思想
代码如下
import java.util.Scanner;
class test23{
public static void main(String[] args){
System.out.print("请输入0-1000之间的数字 ");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
System.out.print(sumJ(a));
}
public static int sumJ(int a){
int sum=0;
while(true){ //此题的关键就是思想
if(0<=a&&a<=1000){//关键是要如何将一个数的各位数字分解出来
sum=sum+a%10;
a=a/10;
if(a==0){//while(true)循环的结束条件
return sum;
}
}
}
}
}
3.7
这道题难点在于一月,二月的时候,要加12,同时year-1,其他都是套公式啦
import java.util.Scanner;
class test37{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("输入月 " );
int m=scanner.nextInt();
System.out.print("输入年 " );
int year=scanner.nextInt();
System.out.print("输入第几天 " );
int q=scanner.nextInt();
qiuhe(m, year, q);
}
public static void qiuhe(int m,int year,int day){
String str="";
if(m==1|| m==2){
m+=12;
year-=1;
}
int h=(day+26*(m+1)/10+year%100+year%100/4+year/100/4+5*year/100)%7;
switch(h){
case 0:
str="星期六";
break;
case 1:
str="星期日";
break;
case 2:
str="星期一";
break;
case 3:
str="星期二";
break;
case 4:
str="星期三";
break;
case 5:
str="星期四";
break;
case 6:
str="星期五";
break;
}
System.out.print("今天是 "+str);
}
}
此题的关键还是思想哦,要知道两数公约数的求法
import java.util.Scanner;
class test312{
public static void main(String[] args){
Scanner scanner =new Scanner(System.in);
System.out.print("请输入n1 " );
int n1=scanner.nextInt();
System.out.print("请输入n2 " );
int n2=scanner.nextInt();
zuiDa(n1, n2);
}
public static void zuiDa(int n1,int n2){
int gcd=1;
for(int i=n1>n2?n2:n1;i>=1;i--){//此题的关键所在
if(n1%i==0&&n2%i==0){
gcd=i;
System.out.print("最大公约数是 "+gcd);
return;
}
}
}
}
此题的关键还是思想哦
看代码哦
import java.util.Scanner;
class test313{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数 ");
int n=scanner.nextInt();
shengXu(n);
}
public static void shengXu(int n){
while(true){
for(int i=2;i<=n;i++){//这道题主要是思想和while(true),break的用法,因数是从2-n
if(n%i==0){
System.out.print(i);
n/=i;
break;
}
}
if(n==1){
break;
}
}
}
}
这道题我们要清楚什么是素数,然后运用循环
看代码哦
class test317{
public static void main(String[] args){
sushu();
}
public static void sushu(){ //主要是思想和一些语句的格式
boolean flag=true;
int count=0;
for(int i=2;i<=1000;i++){
for(int j=2;j<=i-1;j++){
if(i%j==0){
flag=false;
break;
}
}
if(flag){
count++;
System.out.print(i+" ");
if(count%8==0){
System.out.println();
}
}
flag=true;
}
}
}
同样是重要的解题思想
看代码喽
class test321{
public static void main(String[] args){
wanquan();
}
public static void wanquan(){ //主要是思想和一些语句的格式
int sum=0;
for(int i=2;i<=10000;i++){
for(int j=1;j<=i/2;j++){
if(i%j==0){
sum=sum+j;
}
}
if(sum==i){
System.out.println(i+" ");
}
sum=0;//这里很关键
}
}
}
这里要用到字符串的连接哦
import java.util.Scanner;
class test323{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个十进制的数 ");
int n=scanner.nextInt();
System.out.print(erjinzhi(n));
}
public static String erjinzhi(int n){
String str="";
while(true){
str=n%2+str;//关键之处在于连接
n/=2;
if(n==0){
break;
}
}
return str;
}
}
324
此题的关键在于逻辑判断哦
看代码哦
import java.util.Scanner;
class test324{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入数据 ");
int sum=0;
int count=0;
int Max=0;
while(true){
int num=scanner.nextInt();
if(num>Max){
Max=num;//关键在于此处
count=1;//关键在于此处
}
else if(num==Max){
count++;
}
if(num==0){
break;
}
}
System.out.print("最大值是 "+Max+"出现次数是 "+count);
}
}
未完待续哦