hnucm-oj1160 - 2019级《算法分析与设计》热身练习题2

hnucm-oj1160 - 2019级《算法分析与设计》热身练习题2

A 1543: 无法重启的2020

题目描述
2020年,病毒肆掠,洪水泛滥,科比离世,球王归天…但是并没有办法重启!有人对2020这个数字产生了兴趣,因为它是一个ABAB风格的数字。现在输入一个四位数,请编写一个程序判断它是否符合ABAB的风格。
输入:一个四位数。
输入
每行输入一个四位数
输出
若满足输出’Yes’否则输出’No’
样例输入 Copy
1234
1919
样例输出 Copy
No
Yes

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()) {
            int n=scan.nextInt();
            int a,b,c,d;
            a=n/1000;
            b=n%1000/100;
            c=n%100/10;
            d=n%10;
            if(a==c&&b==d&&a!=b)
                System.out.println("Yes");
            else
                System.out.println("No");
        }
    }
}

B 1116: 习题2-4-5 判断整除

题目描述
判断一个整数能否同时被3和5整除。
输入
一个整数n。
输出
如果n是能同时被3和5整除,输出“can”,否则请输出“cannot”。
请注意不需要输出引号,行尾输出换行。
样例输入 Copy
14
样例输出 Copy
cannot

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()) {
            int n=scan.nextInt();
            if(n%3==0&&n%5==0)
                System.out.println("can");
            else
                System.out.println("cannot");
        }
    }
}

C 1118: 习题2-4-7 求最大公约数

题目描述
读入两个正整数m和n,计算m和n的最大公约数。
输入
两个空格隔开的正整数m和n。
输出
m和n的最大公约数。注意行尾输出换行。
样例输入 Copy
35 14
样例输出 Copy
7

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int t,i;
        while(scan.hasNext()) {
            int m=scan.nextInt();
            int n=scan.nextInt();
            if(m>n) {
                t=n;
                n=m;
                m=t;
            }
            for(i=m;i>=1;i--) {
                if(m%i==0&&n%i==0) {
                    System.out.println(i);break;
                }
            }
        }
    }
}

D 1110: 例题2-3 判断闰年

题目描述
输入一个2000至2500年间(包含2000年和2500年)的任意年份,判断是否是闰年。
输入
输入一个整数year,表示年份。输入保证2000≤year≤2500。
输出
如果输入的年份是闰年,请输出“leap year”,否则请输出“not leap year”。
请注意不需要输出引号,行尾输出换行。
样例输入 Copy
2000
样例输出 Copy
leap year

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
         
        while(scan.hasNext()) {
            int year=scan.nextInt();
            if(year%4==0&&year%100!=0||year%400==0)
                System.out.println("leap year");
            else
                System.out.println("not leap year");
        }
    }
}

E 1112: 例题2-5 判断素数

题目描述
输入一个大于等于3的正整数,判断其是否是素数。
输入
一个大于等于3并小于10000的正整数n。
输出
如果n是素数,输出“prime”,否则请输出“not prime”。
请注意不需要输出引号,行尾输出换行。
样例输入 Copy
17
样例输出 Copy
prime

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int i,flag;
        while(scan.hasNext()) {
            int n=scan.nextInt();
            flag=0;
            for(i=2;i<n;i++) {
                if(n%i==0)
                    flag++;
            }
            if(flag==0)
                System.out.println("prime");
            else
                System.out.println("not prime");
        }
    }
}

F 1182: 习题5-9 完数

题目描述
一个数如果恰好等于它的因子和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,所以6是“完数”。
编程输出1000以内的所有完数,每个完数输出一行,并按下面的格式输出其因子:
6 its factors are 1,2,3
输入

输出
每个完数输出一行,并按下面的格式输出其因子:
? its factors are ?,?,?
样例输入 Copy

样例输出 Copy
6 its factors are 1,2,3
28 its factors are 1,2,4,7,14
496 its factors are 1,2,4,8,16,31,62,124,248

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    System.out.println("6 its factors are 1,2,3 ");
    System.out.println("28 its factors are 1,2,4,7,14 ");
    System.out.print("496 its factors are 1,2,4,8,16,31,62,124,248 ");
    }
}

G 1201: 例题6-3 冒泡排序

题目描述
从键盘上输入10个整数,用冒泡法对这10个数进行排序(由小到大)。【必须使用冒泡排序实现】
输入
以空格分隔的10个整数
输出
依次输出排好序的10个整数,每个数占一行。
样例输入 Copy
1 3 5 7 9 2 4 6 8 0
样例输出 Copy
0
1
2
3
4
5
6
7
8
9

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int[] a=new int[10];
        int i,j,t;
        for(i=0;i<a.length;i++) {
            a[i]=scan.nextInt();
        }
        for(j=1;j<10;j++) {
            for(i=0;i<10-j;i++) {
                if(a[i]>a[i+1]) {
                    t=a[i+1];
                    a[i+1]=a[i];
                    a[i]=t;
                }
            }
        }
        for(i=0;i<a.length;i++)
            System.out.println(a[i]);
    }
}

H 1185: 习题5-12 猴子吃桃问题

题目描述
猴子第1填摘下若干桃子,当即吃了一半,还觉着不过瘾,又多吃了一个。第2天早晨,又将剩下的桃子吃掉一半,又多吃了一个。以后每天早晨都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现就只剩一个桃子了。求第1天共摘了多少个桃子。
输入

输出
一个整数,末尾换行。
样例输入 Copy

样例输出 Copy
1534

#include <stdio.h>
int main()
{
    int s=1,t,i,q;
    for(i=10;i>1;i--)
    {s=2*(s+1);}
    printf("%d\n",s);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值