1. 程式人生 > >過大年問題、迴圈素數問題java實現

過大年問題、迴圈素數問題java實現

1、過大年問題
這裡寫圖片描述
七個漢字分別代表七個數字,包括0-9

//果斷窮舉...
    public static void main(String[] args) {
        int sum0;
        int sum1;
        int sum2;
        int sum3;
        int sum4;
        int sum5;
        int sum6;
        int sum7;
        int sum8;
        for (int a = 0; a < 10; a++)
            for (int
b = 0; b < 10; b++) for (int c = 0; c < 10; c++) for (int d = 0; d < 10; d++) for (int e = 0; e < 10; e++) for (int f = 0; f < 10; f++) for (int g = 0; g < 10; g++) { sum0 = g; sum1 = 10
* f + sum0; sum2 = 100 * e + sum1; sum3 = 1000 * d + sum2; sum4 = 10000 * c + sum3; sum5 = 100000 * b + sum4; sum6 = 1000000 * a + sum5; sum7 = sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6; sum8 = 1111111
* d;//剛開始我用的1000000 * d+100000 * d+...醉了 if (sum7 == sum8) { System.out.println(sum6); break; } } } }

2、迴圈素數
如1193是個素數,對它迴圈移位發現:1931、9311、3119都是素數。
求5位最大的迴圈素數。

//對於這樣的問題一般有兩種方法:
1、分離法:即從滿足條件的每一個答案進行迴圈,此題中對10000-99999迴圈,對其中每一位執行分離,最後將每一位的數值合在一起進行判斷。
2、合成法:即對答案的每一位都進行迴圈,此題中對0-9迴圈,判斷合成的數是否符合條件。
對此題,明顯合成法更好。
public class Main {

    public static void main(String[] args) {
        int sum0;
        int sum1;
        int sum2;
        int sum3;
        int sum4;
        for (int a = 1; a < 10; a+=2)
            for (int b = 1; b < 10; b+=2)
                for (int c = 1; c < 10; c+=2)
                    for (int d = 1; d < 10; d+=2)
                        for (int e = 1; e < 10; e+=2) {
                                sum0 =10000*a+1000*b+100*c+10*d+e;
                                sum1 =10000*b+1000*c+100*d+10*e+a;
                                sum2 =10000*c+1000*d+100*e+10*a+b;
                                sum3 =10000*d+1000*e+100*a+10*b+c;
                                sum4 =10000*e+1000*a+100*b+10*c+d;
                                if(f(sum0)&&f(sum1)&&f(sum2)&&f(sum3)&&f(sum4)){
                                    System.out.println(sum0);
                            }
        }
    }
    //把所有其他功能單獨寫成方法是一種很好的習慣
    public static boolean f(int sun){
        boolean tag=true;
        for (int i = 2; i<=sun/2; i++)
            if (sun%i==0) {
                tag=false;
            }
        return tag;
    }
}

相關推薦

大年問題迴圈素數問題java實現

1、過大年問題 七個漢字分別代表七個數字,包括0-9 //果斷窮舉... public static void main(String[] args) { int sum0; int sum1; i

棧的java實現

方法 blog 構造方法 int out 初始化 const .com 分享圖片 原理圖: 源代碼: public class Mystack { private int[] array; //數組實現棧 public int top = -

(超詳細易懂)Java實現--表示式之中綴轉字尾

  自打遇到棧,一直都想些寫一篇通俗易懂的將中綴表示式轉化為字尾表示式的博文,今天總算完成了這個心願。   所有的解釋在程式碼行裡面均有解釋。有什麼不懂的可以在評論區或者私信我。 為了不用一直拉動程式碼行看註釋(這回很麻煩也很浪費時間),本人將較長的註釋分成了兩行。 (

平衡二叉樹(AVL)--查詢刪除插入(Java實現

           前言                        前面一篇文章,筆者就二叉查詢樹進行了一些解釋與實現,這篇文章筆者將會就平衡二叉樹                    做一些總結與實現。讀者若不瞭解二叉查詢樹的話,可以參考這篇文章:       

kafka消費者生產者,Java實現

參考:https://www.cnblogs.com/zlslch/p/5966004.html1、KafkaProducerOps.java//執行成功 import org.apache.kafka.clients.producer.KafkaProducer; impo

Javascript資料結構與演算法--佇列(順序佇列優先佇列迴圈佇列)的實現與用法

前言 佇列和棧非常類似,前面已經講過了棧的實現與用法,現在我們來說說佇列。 佇列介紹 佇列遵循FIFO(First In First Out,先進先出)原則的一組有序的項。 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是

決策樹分類器(ID3C4.5 Java實現

分類 什麼是分類?舉個例子,銀行貸款員需要分析資料,以便搞清楚哪些是貸款申請者是值得信賴的。通訊公司也希望能分清楚哪些客戶容易接受某一套餐,從而定向營銷。資料分類一般又包括學習階段(構建分類器)和分類階段(使用模型預測給定資料的類標號)。 決策樹分類器

JavaWeb開發中Ajax技術json與java實現ListMap資料直接傳遞的研究

 一、在JavaWeb開發中基於jquery框架來使用ajax技術,Json與後臺servlet進行資料互動示例,下面示例中基於servlet技術,沒有使用struts2等框架。         由於專案需要通過ajax得到後臺的List物件、map物件裡面的值,閒暇時間

LRULFU演算法java實現

近期使用springboot整合ehcache實現快取,spring還支援使用簡單ConcurrentMapCache實現,底層就是用ConcurrentHashMap實現。ehcache相對來說比較重,加pom依賴下載了很長時間,但是ehcache有很多可配置

雲星資料---Scala實戰系列(精品版)】:Scala入門教程016-Scala實戰原始碼-Scala 判斷語句 迴圈java的比較

Scala 判斷語句 、迴圈與java的比較 package scala_learn.demo01_FunctionStatement /** * Created by liguohua on

晚上,有四個人河,分別需要12510分鐘。只有一把手電筒,河的必要條件是有手電筒。最多可以兩個人同時河,但必須以兩人中較慢的那個人的速度過去。問:所有人都河,至少需幾分鐘。用java實現

找實習工作遇到的筆試題: 解題思路:用兩個集合分別代表河的兩岸(list2表示對岸),利用雙重for迴圈模擬A,B,C,D分別組合過河,如:A,B先過河,則,將A,B都新增到list2集合中去。如果A的時間大於B,則B再次過河送手電筒,再一次將B新增到集合中去。反之同理。 總之,時間短的過河

【資料結構與演算法】之單鏈表雙鏈表迴圈連結串列的基本介紹及其Java程式碼實現---第三篇

一、連結串列的基本介紹 連結串列的定義:連結串列是一種遞迴的資料結構,它或者為空(null),或者是指向一個結點(node)的引用,該結點含有一個泛型的元素和一個指向另一條連結串列的引用。----Algorithms  Fourth  Edition   常見的連結串

java實現【有三個執行緒ID分別是ABC,請有多線程式設計實現,在螢幕上迴圈列印10次ABC.】

該題應屬於生產者消費者模式一類 生產者消費者模式:根據標誌位來發訊息,實現對執行緒的控制。 直接貼答案了,請各位大蝦們指正哦。 建立三個執行緒 如下:ThreadA、ThreadB、ThreadC public class ThreadA implements Ru

java佇列實現(順序佇列鏈式佇列迴圈佇列)

雙向順序佇列ArrayDeque和雙向鏈式佇列LinkedList,JDK已經包含,在此略。ArrayDeque包括順序棧和順序佇列,LinkedList包含鏈式棧和鏈式佇列。ArrayDeque和LinkedList都是執行緒不安全的。PriorityQueue優先佇列也

資料結構Java實現 ----迴圈連結串列模擬連結串列

單向迴圈連結串列雙向迴圈連結串列模擬連結串列 一、單向迴圈連結串列: 1、概念: 單向迴圈連結串列是單鏈表的另一種形式,其結構特點是連結串列中最後一個結點的指標不再是結束標記,而是指向整個連結串列的第一個結點,從而使單鏈表形成一個環。

資料結構Java實現04----迴圈連結串列模擬連結串列

單向迴圈連結串列雙向迴圈連結串列模擬連結串列 一、單向迴圈連結串列: 1、概念: 單向迴圈連結串列是單鏈表的另一種形式,其結構特點是連結串列中最後一個結點的指標不再是結束標記,而是指向整個連結串列的第一個結點,從而使單鏈表形成一個環。 和單鏈表相比,迴圈單鏈表的長

Java實現二叉樹的前序中序後序層序遍歷(遞歸方法)

pos clas print main 二叉 extend xtend left input public class Tree<AnyType extends Comparable<? super AnyType>> { private stati

Unix時間戳轉日期時間格式,C#JavaPython各語言實現

[1] oda total 轉換 n) str nbsp -m col 之前有個Q上好友沒事問我,怎麽自己寫Unix時間戳轉日期時間?於是我就順手寫了個C#版本給他!最近想起來,就萌發多寫幾個語言的版本分享,權當練習思路外加熟悉另外兩種語言。 先說轉換步驟 先處理年份

java實現排序算法:快排冒泡排序選擇排序插入排序歸並排序

結果 快速 post ont pla emp string () tro 一、概述:本文主要介紹常見的幾種排序算法的原理以及java實現,包括:冒泡排序、選擇排序、插入排序、快速排序、歸並排序等。 二、冒泡排序: (1)原理:   1、從第一個數據開始,與第二個數據相比較,

隊列的java實現

println 原理 element alt 插入 分享圖片 struct 截圖 turn 原理: 隊尾進,隊頭出。 運行截圖 從隊列一個個彈出數據也沒有錯,但是有一個錯誤就是彈出數據再次插入數據時會顯示數組越界,是因為沒有把font和end重置,下一篇