最近一段时间代码汇总

简介:

一,求解幸运数

 给定一个十进制的数,它的若干位之和等于二进制形式的各个位之和,则它就是幸运数。

比如十进制数123,各个位之和为6;比如十进制数3,各个位之和为3,二进制表示为 011,各个二进制位之和为2 ,这两个和不相等,故十进制数3不是幸运数。

 

 下面程序实现了,给定一个数 num,求 1,2,3,....num 之间的所有的幸运数。

 

复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt())
        {
            int count = sc.nextInt();
            int[] values = new int[count];
            for(int i = 0; i < count; i++)
            {
                values[i] = sc.nextInt();

            }
            for(int i = 0; i < count; i++)
            {
                int res = luckNumbers(values[i]);
                if(res > 0)
                System.out.println(res);
            }
        }
        sc.close();
    }
    
    private static int luckNumbers(int value){
        int count = 0;
        for(int i = 1; i <= value; i++)
        {
            int ten = process(i);
            int binary = process2(i);
            if(ten == binary)
                count++;
        }
        return count;
    }
    
    private static int process(int value)
    {
        int sum = 0;
        while(value > 0)
        {
            sum += value % 10;
            value = value/10;
        }
        return sum;
    }
    
    private static int process2(int num){
        int count = 0;
        for(; num > 0; count++)
        {
            num &= (num - 1);
        }
        return count;
    }
}
复制代码

 

二,第一行

复制代码
import java.util.Arrays;
import java.util.Scanner;  

public class Main {  
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        while(sc.hasNextLine())
        {
            String line = sc.nextLine();
            int tables = Integer.valueOf(line.split(" ")[0]);
            int customers = Integer.valueOf(line.split(" ")[1]);
            
            int[] cap = new int[tables];
            line = sc.nextLine();
            String lines[] = line.split(" ");
            for(int i = 0; i < cap.length; i++)
                cap[i] = Integer.valueOf(lines[i]);
            
            Buy[] buyarr = new Buy[customers];
            for(int i = 0; i < customers; i++)
            {
                line = sc.nextLine();
                int numbers = Integer.valueOf(line.split(" ")[0]);
                int money = Integer.valueOf(line.split(" ")[1]);
                buyarr[i] = new Buy(money, numbers);
            }
            Arrays.sort(cap);
            Arrays.sort(buyarr);
            int count = 0;
            for(int i = 0; i < customers; i++)
            {
                int numbers = buyarr[i].numbers;
                int money = buyarr[i].money;
                int j = 0;
                boolean find = false;
                for(; j < cap.length; j++)
                    if(numbers < cap[j])
                    {
                        cap[j] = 0;
                        find = true;
                        break;
                    }
                if(find == true){
                    count += money;
                }
            }
            System.out.println(count);
        }
    }
    
    private static class Buy implements Comparable<Buy>{
        int money;
        int numbers;
        
        public Buy(int money, int numbers) {
            this.money = money;
            this.numbers = numbers;
        }
        
        @Override
        public int compareTo(Buy o) {
            return o.money - this.money;//按money从大到小排序
        }
    }
}
复制代码

 

三,使用两个线程,交替打印 1-10。线程A打印奇数,线程B打印偶数

复制代码
public class Test{
    public static void main(String[] args) {
        Print p = new Print();
        Thread t1 = new ThreadA(p);//负责打印奇数
        Thread t2 = new ThreadB(p);//负责打印偶数
        
        t2.start();
        try {
            Thread.sleep(100);//让当前线程睡一会儿,好让t2能够 start
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        t1.start();//t2 start之后,才启动t1
    }
}

class Print{
    private volatile boolean isA = false;
    public synchronized void printOdd(int i){
        try{
            while(i <= 9)
            {
                while(isA == true)
                    wait();
                System.out.print(i);
                notifyAll();//让t2先启动,由于 isA初始为false,t2会wait,这样 t1获得锁打印了1之后,nofityAll发的通知才不会丢失
                i+=2;
                isA = true;
            }
        }catch(InterruptedException e){
            e.printStackTrace();
        }
        
    }
    public synchronized void print(int i){
        try{
            while(i <= 10)
            {
                while(isA == false)
                    wait();
                System.out.print(i);
                i+=2;
                notifyAll();
                isA = false;
            }
        }catch(InterruptedException e){
            e.printStackTrace();
        }
    }
}

class ThreadB extends Thread{
    Print p;
    
    public ThreadB(Print p) {
        this.p = p;
    }
    
    @Override
    public void run() {
        p.print(2);
    }
}


class ThreadA extends Thread{
    Print p;
    
    public ThreadA(Print p) {
        this.p = p;
    }
    
    @Override
    public void run() {
        p.printOdd(1);
    }
}
复制代码
本文转自hapjin博客园博客,原文链接:http://www.cnblogs.com/hapjin/,如需转载请自行联系原作者
相关文章
|
C#
如何解决在PotPlayer中看视频音画不同步的问题(C#视频可用)
如何解决在PotPlayer中看视频音画不同步的问题(C#视频可用)
1053 0
|
6月前
|
运维 Serverless 数据处理
函数计算产品使用问题之遇到生成没有反应、中止也不行,以及刷新后队列积累的问题,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7月前
|
SQL 关系型数据库 MySQL
服务器运行一段时间后
【4月更文挑战第1天】服务器运行一段时间后 需要清除日志
332 10
|
Go 数据库
sync.Once-保证运行期间的某段代码只会执行一次
sync.Once-保证运行期间的某段代码只会执行一次
92 0
java 计算两个时间间隔几天几小时几分钟几秒
计算两个时间间隔几年几月几天几小时几分钟几秒
java 计算两个时间间隔几天几小时几分钟几秒
|
Java
Java循环运行时暂停一段时间
Java循环运行时暂停一段时间
122 2
|
SQL 缓存 安全
工作中遇到的小技巧 一(暂停更新)
原来只是在网易博客里整理了一些学习中遇到的小技巧,现在开始在这里慢慢积累希望对大家有所帮助。
工作中遇到的小技巧 一(暂停更新)
|
人工智能 达摩院 前端开发
想爱的人,想去的地方,一秒钟都不想等了!
万物复苏,终于复工。上周,橙子在内网上向阿里同学发起提问:2020我们拥抱变变变化,但无论发生什么2020你都想「做成」的事是什么?
297 0
想爱的人,想去的地方,一秒钟都不想等了!
|
前端开发 JavaScript 数据库

相关实验场景

更多