最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何用python和java分別寫出10道經(jīng)典題(含代碼)

 更新時間:2026年05月14日 09:48:06   作者:鈺札镠.  
Python與Java在語言特性、性能和應用場景上各有優(yōu)勢,下面這篇文章主要介紹了如何用python和java分別寫出10道經(jīng)典題的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

1.求第100項之和

已知1、1、2、3、5、8、13......就是從第三項開始,每一項等于前兩項之和。求第100項。

斐波那契數(shù)列 第100項

數(shù)列:1, 1, 2, 3, 5, 8, 13, …從第三項起,每一項等于前兩項之和。求第100項的值。

用兩個變量 a  和 b 分別 表示當前項的前兩項從第3項開始循環(huán),每次計算 c = a+b ,更新 a = b , b = c循環(huán)結束 后 b 就是 第 100 項

100 項 數(shù)值很大 python 整數(shù)無上限 ,java 需要使用 BigInteger

python 代碼

a,b = 1,1
for i in range(3,101):
    c = a+b
    a = b
    b = c
print(c)

java 代碼

package a;
//數(shù)列:1, 1, 2, 3, 5, 8, 13, …
//從第三項起,每一項等于前兩項之和。求第100項的值。
import java.math.BigInteger;
public class Tm1 {
    public static void main(String[] args) {
        BigInteger a = BigInteger.ONE;
        BigInteger b = BigInteger.ONE;
        for (int i = 3; i <= 100; i++) {
            BigInteger c = a.add(b);  //c = a+b
            a = b;   //更新a
            b = c;   //更新b
        }
        System.out.println("第100項是:" + b);
    }
}

2、物不知數(shù)

”出自《孫子算經(jīng)》。

題目為:今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問物幾何?”。意思是說有一些物品,不知道有多少個,3個3個數(shù)的話,還多出2個;5個5個數(shù)則多出3個;7個7個數(shù)也會多出2個。現(xiàn)假設物品總數(shù)不超過n(n<=1000),請編程計算滿足條件的物品個數(shù)并輸出。

一個數(shù)x, 滿足:x 除以 3 余 2x 除以 5 余 3x 除以 7 余 2給定上限 n (n ≤ 1000),求出所有不超過 n 的 x。x <=1000,可以用 暴力枚舉  每個數(shù)是否同時滿足三個余數(shù)條件

python 代碼

n = int(input("請輸入物品總數(shù)上限 n (n <=1000):"))

# 遍歷 1 到 n
for i in range(1, n+1):
    # 同時滿足三個條件
    if i % 3==2 and i % 5==3 and i % 7==2:
        print(i, end=" ")
print()

java 代碼

package a;

import java.util.Scanner;

public class Tm2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入上限 n (<=1000)");
        int n = sc.nextInt();
//      遍歷 1 到 n
        for (int i = 1; i <=n; i++) {
            //同時滿足三個余數(shù)條件
            if(i %3 ==2 && i%5 ==3 && i%7==2){
                System.out.println(i + " ");
            }
        }
        sc.close();
    }
}

3、完數(shù)

一個數(shù)如果恰好等于不包含它本身所有因子之和,這個數(shù)就稱為"完數(shù)”。例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數(shù)”。編程序找出100之內(nèi)的所有完數(shù)。遍歷 2 到100(1,不是完數(shù)),對每個數(shù) i,找出所有小于i 的因子,求和,若和等于i,則輸出。

完數(shù):

一個數(shù)如'它的所有真因子(除了它自己以外的因數(shù))加起來,剛好等于它自己 ',那它 就是完數(shù)。一個數(shù)的因子(除了它自己),最大不可能超過他的一半

python 代碼

#完數(shù)
# 遍歷 2 到 100(1 不是完數(shù))。
#
# 對每個數(shù) num,用內(nèi)層循環(huán)找出所有小于 num 的因子(即 num % i == 0),累加。
#
# 若累加和等于 num,則輸出。

for num in range(2, 101):
    factor_sum = 0
    for i in range(1,num):
        if num % i == 0:
            factor_sum += i
        if factor_sum == num:
            print(i, end=" ")
print()

java 代碼

package a;

public class Tm3 {
    public static void main(String[] args) {
        for (int num = 2; num <= 100; num++) {
            int factorSum = 0;          // 因子和初始為0
            // 找所有真因子(1到num-1)
            for (int i = 1; i < num; i++) {
                if (num % i == 0) {     // i是num的因子
                    factorSum += i;     // 累加
                }
            }
            if (factorSum == num) {     // 因子和等于自身,輸出
                System.out.print(num + " ");
            }
        }
    }
}

4、編程:求100到200之間的素數(shù),并統(tǒng)計其個數(shù)。

判斷素數(shù)時,只需檢查從 2 到 sqrt(n) 是否有因子。

注意 1 不是素數(shù),但范圍從 100 開始,所以沒問題。

素數(shù)(也叫質(zhì)數(shù)):一個大于 1 的整數(shù),如果只能被 1 和它自己整除,那它就是素數(shù)。

換句話說,它找不到其他的因子。

python 代碼

# 100 ~ 200 之間的素數(shù)

# 找出 100 到 200之間的素數(shù),并統(tǒng)計個數(shù)。

# 素數(shù) 只能被 1 和本身整除的數(shù)

import math
#初始化 一個計數(shù)器 變量
count = 0
#循環(huán) 讓變量 num 從100遍歷到200,
# range 包頭不包尾 所以寫201
for num in range(100, 201):
    # 設置一個標志位 先假設當前的num是素數(shù)
    isprime = True
    # 計算當前數(shù)字的平方根,取整后加1

    limit = int(math.sqrt(num))+1
    # 內(nèi)層循環(huán) :試除  從2開始到 limit 結束
    for i in range(2, limit):
        if num % i == 0:
            isprime = False
            break
    #若 num  能被 i 整除 余數(shù)為0 說明 它不是素數(shù) 跳出內(nèi)層循環(huán)
    # 檢查標志位
    if isprime:
        # 打印這個素數(shù),不換行
        print(num,end=' ')
        # 找到一個計數(shù)器+1
        count += 1
print(f"\n一共有{count}")

java 代碼

package a;

public class Tm4 {
    public static void main(String[] args) {
        int count  =0;
        System.out.println("100到200之間的素數(shù)有:");

        for (int n = 100; n <=200 ; n++) {
            boolean isPrime = true;
//            假設當前的 n 是 素數(shù)
            for (int i = 2; i <=Math.sqrt(n); i++) {
                if(n %i ==0){
                    isPrime = false;
                    break;
                }
            }
            if(isPrime){
                System.out.print(n+" ");
                count++;
            }
        }
        System.out.println("\n\n素數(shù)的總個數(shù)" +count);
    }
}

5、編程:顯示前100個回文素數(shù)。

每行顯示10個素數(shù)。(回文素數(shù)是指一個數(shù)是素數(shù)也是回文數(shù)。例如:131既是素數(shù)也是回文數(shù)。)回文素數(shù)是指既是素數(shù)又是回文數(shù)(正讀反讀相同)的數(shù)。例如 131。輸出前100個回文素數(shù),每行顯示10個。

6、利用循環(huán)程序打印如下三角形程序

外層循環(huán)控制行數(shù):從 5 到 1 遞減。

內(nèi)層循環(huán)打印星號:每行星號個數(shù)等于當前行號

python 代碼

# 打印 倒三角形
row = 5
#  i 從 5 降到1,步長-1
for i in range(row,0,-1):
    # 打印 i 個 * 號
    print("*" * i)
print()

java 代碼

package a;

public class Tm6 {
    public static void main(String[] args) {
        int row = 5;
        for (int i = row; i >=1; i--) {
            for (int j = 1; j <=i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

7、九九乘法表

外層循環(huán) i 從 1 到 9(表示第二個乘數(shù))。

內(nèi)層循環(huán) j 從 1 到 i(表示第一個乘數(shù))。

輸出 j × i = i*j,用制表符 \t 分隔。

python 代碼

# 第7題:九九乘法表
# 外層循環(huán) i 從1到9 表示第二個乘數(shù)
for i in range(1,10):               #i= 1..9
    #內(nèi)層循環(huán) j 從1到i  表示第一個乘數(shù)
    for j in range(1,i+1):          #j = 1..i
        # 輸出 j x i = i*j  用制表符 \t 分隔
        print(f"{i}*{j} = {j*i}",end= '\t')
    print()  #內(nèi)層循環(huán)結束換行

java 代碼

package a;

public class Tm7 {
    public static void main(String[] args) {
        for (int i = 1; i <=9; i++) {                       //i 是第二個乘數(shù)
            for (int j = 1; j <=i ; j++) {                  //j 是第一個乘數(shù)
                System.out.print(j + "*" + j + "=" +(i * j) +"\t");
            }
            System.out.println();   //每一行結束 換行
        }
    }
}

8、利用循環(huán)程序,打印如下圖形。

A

BB

CCC

DDDD

EEEEE

FFFFFF

第 i 行打印 i 次同一個字母。字母 = 'A' + i - 1(利用 ASCII 碼)

ASCII碼

可以理解為 計算機里的“字符身份證號碼”‌‌‌計算機只認識數(shù)字,不認識字母。字母‘A’ 的身份證號碼(ASCII碼) 是 65字母‘B’是 66字母‘C’是 67...以此類推

十進制

十六進制

字符

說明

0

0x00

NUL

空字符(Null)

7

0x07

BEL

響鈴(Bell)

8

0x08

BS

退格(Backspace)

9

0x09

HT

水平制表符(Horizontal Tab)

10

0x0A

LF

換行(Line Feed)

13

0x0D

CR

回車(Carriage Return)

32

0x20

空格

可見為空格

48

0x30

0

數(shù)字0起始

65

0x41

A

大寫字母A起始

97

0x61

a

小寫字母a起始

127

0x7F

DEL

刪除(Delete)

python 代碼

# 第8題  打印怎么三角形
# 第 i  行 打印 i 次 同一個字母
# 字母 = 'A' + i - 1  (利用ASCII碼)
row = 6
for i in range(1,row+1):        #i = 1到6
    # 計算行應打印的字母: ord('A') = 65,加 (
    ch = chr(ord("A")+i-1)
    print(ch*i)

java 代碼

package a;

public class Tm8 {
    public static void main(String[] args) {
//  外層循環(huán)  決定字母是什么 現(xiàn)在在第幾行
        int row = 6;
        for (int i = 1; i <=row; i++) {
//  (char)  將算出來的數(shù)字強行變成字符
            char ch = (char)('A'+ i -1);
//  計算字母    利用ASCII碼,算出當前字母
//            ord('A') 得到 65
//            i = 1 時;65 +0 = 65->char(65)->'A'
//            i = 2 時;65 +1 = 66->char(66)->'B'

//  內(nèi)層循環(huán)   將當前字母重復打印 N 次
            for (int j = 1; j <=i; j++) {
                System.out.print(ch);  //打印字母不換行
            }
            System.out.println();  //換行
        }
    }
}

9、輸入一段字符串,統(tǒng)計其中大寫字母、小寫字母、數(shù)字、空格和其它字符的個數(shù)。

將字符串轉換成字符數(shù)組(或使用 charAt)

遍歷每個字符,根據(jù) ASCII 范圍(或字符比較)分類:

大寫:'A' ~ 'Z'

小寫:'a' ~ 'z'

數(shù)字:'0' ~ '9'

空格:' '

其他:剩下的

每類對應一個計數(shù)器,最終輸出。

python 代碼

# 輸入一段字符串,統(tǒng)計其中大寫字母、小寫字母、數(shù)字、空格、其他字符的個數(shù)。

s = input("請輸入一段字符串:")

# 初始化5個計數(shù)器
upper = lower = digit = space = other = 0

# 遍歷字符串中的每個字符
for ch in s:
    if 'A' <= ch <= 'Z':      # 大寫字母
        upper += 1
    elif 'a' <= ch <= 'z':    # 小寫字母
        lower += 1
    elif '0' <= ch <= '9':    # 數(shù)字
        digit += 1
    elif ch == ' ':           # 空格
        space += 1
    else:                     # 其他字符
        other += 1

# 輸出結果
print(f"大寫字母: {upper}, 小寫字母: {lower}, 數(shù)字: {digit}, 空格: {space}, 其他: {other}")

java 代碼

package a;

import java.util.Scanner;

public class Tm9 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("請輸入一段字符串:");
        String str = sc.nextLine();          // 讀取整行,包含空格

        // 五個計數(shù)器,初始都為 0
        int upper = 0;   // 大寫字母個數(shù)
        int lower = 0;   // 小寫字母個數(shù)
        int digit = 0;   // 數(shù)字個數(shù)
        int space = 0;   // 空格個數(shù)
        int other = 0;   // 其他字符個數(shù)

        // 使用 toCharArray() 獲得字符數(shù)組,然后用增強 for 循環(huán)遍歷
        // 這樣不用關心下標,非常直觀
        for (char ch : str.toCharArray()) {
            // 判斷大寫字母:ASCII 中 'A' 到 'Z'
            if (ch >= 'A' && ch <= 'Z') {
                upper++;
            }
            // 判斷小寫字母:'a' 到 'z'
            else if (ch >= 'a' && ch <= 'z') {
                lower++;
            }
            // 判斷數(shù)字:'0' 到 '9'
            else if (ch >= '0' && ch <= '9') {
                digit++;
            }
            // 判斷空格:直接比較字符是否為空格
            else if (ch == ' ') {
                space++;
            }
            // 其余一律算作其他字符
            else {
                other++;
            }
        }

        // 打印統(tǒng)計結果
        System.out.println("大寫字母: " + upper);
        System.out.println("小寫字母: " + lower);
        System.out.println("數(shù)字: " + digit);
        System.out.println("空格: " + space);
        System.out.println("其他字符: " + other);

        sc.close();
    }
}

10、統(tǒng)計各色色塊的數(shù)量

編程:已知有三種色塊(紅(“red”)、綠(“green”)、藍(“blue”)),現(xiàn)隨機生成50個色塊,編程統(tǒng)計各種色塊的數(shù)量,并按從大到小排序輸出。

隨機生成 + 字典計數(shù) + 排序

隨機:從顏色列表中用 random.choice 抽取。

計數(shù):用字典(HashMap)存儲每種顏色出現(xiàn)次數(shù)。

排序:將字典條目按值降序排序,可用 sorted 或 list.sort

有 3 種色塊 red green blue

要隨機生成 50個

要統(tǒng)計 各種色塊的數(shù)量

從大到小 排序 輸出

python 代碼

import random
from collections import Counter   # 專門用來計數(shù)的工具

#定義顏色
colors = ["red", "green", "blue"]

# 生成50個隨機顏色
random_colors = [random.choice(colors) for _ in range(50)]

# Counter自動統(tǒng)計每個顏色出現(xiàn)次數(shù)
counter = Counter(random_colors)
# 此時 counter 的樣子大概是:{'red': 18, 'green': 15, 'blue': 17}

# 按數(shù)量從大到小排序
sorted_items = sorted(counter.items(), key=lambda x: x[1], reverse=True)
#items()返回(顏色,數(shù)量)對,
#key=lambda x: x[1]表示按 數(shù)量 排序,
#reverse=True降序  False 是 升序


# 循環(huán)輸出  
for color, count in sorted_items:
    print(f"{color}: {count}")

java 代碼

兩種方法 排序的方式有不同

方法1的:

是升序

list.sort((a1,a2) -> a1.getValue() - a2.getValue());

實際意思:

如果結果是負數(shù),說明 a1 小,排前面(升序)。
如果結果是正數(shù),說明 a1 大,排后面。

弱點:

這種寫法不安全。如果數(shù)字非常大(比如幾億),兩個大數(shù)相減可能會導致“溢出”(結果算錯了),雖然這道題只有 50 個球不會溢出,但在專業(yè)開發(fā)中這是被禁止的寫法

方法2的:
list.sort((e1, e2) -> e2.getValue().compareTo(e1.getValue()));

實際意思:

直接調(diào)用 Java 自帶的“比較”功能

優(yōu)點:

安全: 不會出現(xiàn)計算錯誤。
直觀: compareTo 就是“比較”的意思,語義更清晰。
靈活: 注意看這里寫的是 e2 比 e1,這直接實現(xiàn)了從大到?。ń敌颍?。

方法1 

package a;

import java.util.*;
//編程:已知有三種色塊(紅(“red”)、綠(“green”)、藍(“blue”)),
//現(xiàn)隨機生成50個色塊,編程統(tǒng)計各種色塊的數(shù)量,并按從大到小排序輸出。

// 有 3 種色塊   red green blue
// 要隨機生成  50個
// 要統(tǒng)計 各種色塊的數(shù)量
// 從大到小 排序 輸出

public class Tm10 {
    public static void main(String[] args) {
//        顏色
        String [] color = {"red","green","blue"};
//        計數(shù)  key 顏色 value 次數(shù)
        HashMap<String,Integer> map = new HashMap<>();
//        初始化:先把紅綠藍都放進去,次數(shù)設為0
        for (String s :color){
            map.put(s,0);
        }

        Random ran = new Random();

        for (int i = 0; i < 50; i++) {
//            生成 0-2 的隨機數(shù) ,對應數(shù)組的下標
            int index = ran.nextInt(color.length);
            String chosen = color[index];  //拿到顏色名字

            map.put(chosen,map.get(chosen)+1);
        }
//        準備排序  轉換成 list  列表
//        HashMap 本身不能排序,需要將它轉換成 list 列表
       List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
//        排序
        list.sort((a1,a2) -> a1.getValue() - a2.getValue());
//  循環(huán)打印 列表中每個顏色和數(shù)量   getKey 顏色 getValue 數(shù)量
        for (Map.Entry<String,Integer>entry :list) {
            System.out.println(entry.getKey() + ":" +entry.getValue());
        }
    }
}

方法2

import java.util.*;
public class ColorStatistics {
    public static void main(String[] args) {
        String[] colors = {"red", "green", "blue"};
        Random rand = new Random();
        Map<String, Integer> map = new HashMap<>();
        // 初始化
        for (String c : colors) map.put(c, 0);
        // 隨機50次
        for (int i = 0; i < 50; i++) {
            int idx = rand.nextInt(colors.length);
            String chosen = colors[idx];
            map.put(chosen, map.get(chosen) + 1);
        }
        // 轉換成List以便排序
        List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
        // 按值降序排序
        list.sort((e1, e2) -> e2.getValue().compareTo(e1.getValue()));
        // 輸出
        for (Map.Entry<String, Integer> e : list) {
            System.out.println(e.getKey() + ": " + e.getValue());
        }
    }
}

總結 

到此這篇關于如何用python和java分別寫出10道經(jīng)典題的文章就介紹到這了,更多相關python和java經(jīng)典題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python之Web框架Django項目搭建全過程

    Python之Web框架Django項目搭建全過程

    這篇文章主要介紹了Python之Web框架Django項目搭建全過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 利用Python開發(fā)Markdown表格結構轉換為Excel工具

    利用Python開發(fā)Markdown表格結構轉換為Excel工具

    在數(shù)據(jù)管理和文檔編寫過程中,我們經(jīng)常使用 Markdown 來記錄表格數(shù)據(jù),但它沒有Excel使用方便,所以本文將使用Python編寫一個轉換工具,希望對大家有所幫助
    2025-03-03
  • python實現(xiàn)彩票系統(tǒng)

    python實現(xiàn)彩票系統(tǒng)

    這篇文章主要介紹了python實現(xiàn)彩票系統(tǒng),主要采用面向對象的方法,信息存儲方式采用pickle模塊來進行存儲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python 正確保留多位小數(shù)的實例

    python 正確保留多位小數(shù)的實例

    今天小編就為大家分享一篇python 正確保留多位小數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 將string類型的數(shù)據(jù)類型轉換為spark rdd時報錯的解決方法

    將string類型的數(shù)據(jù)類型轉換為spark rdd時報錯的解決方法

    今天小編就為大家分享一篇關于將string類型的數(shù)據(jù)類型轉換為spark rdd時報錯的解決方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python的sorted函數(shù)及使用解析

    python的sorted函數(shù)及使用解析

    這篇文章主要介紹了python的sorted函數(shù),sorted函數(shù)就比sort函數(shù)要強大許多了,sort只能對列表進行排序,sorted可以對所有可迭代類型進行排序,并且返回新的已排序的列,本文給大家詳細講解需要的朋友可以參考下
    2022-11-11
  • python正則表達式對字符串的查找匹配

    python正則表達式對字符串的查找匹配

    正則表達式是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”),下面這篇文章主要給大家介紹了關于python正則表達式對字符串的查找匹配的相關資料,需要的朋友可以參考下
    2022-09-09
  • Python?常見的配置文件寫法梳理匯總

    Python?常見的配置文件寫法梳理匯總

    這篇文章主要介紹了Python?常見的配置文件寫法梳理匯總,文章圍繞主題展開主題相關梳理總結,需要的朋友可以參考一下
    2022-07-07
  • python刪除xml中的w:ascii屬性的步驟

    python刪除xml中的w:ascii屬性的步驟

    使用xml.etree.ElementTree刪除Word?XML中w:ascii屬性,需注冊命名空間并定位rFonts元素,通過del操作刪除屬性,建議配合python-docx庫,注意備份及文檔保護設置,確保修改目標樣式,本文給大家介紹python刪除xml中的w:ascii屬性的步驟,感興趣的朋友一起看看吧
    2025-06-06
  • python實現(xiàn)圖片,視頻人臉識別(opencv版)

    python實現(xiàn)圖片,視頻人臉識別(opencv版)

    這篇文章主要介紹了python實現(xiàn)圖像,視頻人臉識別(opencv版)的的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-11-11

最新評論

略阳县| 昭平县| 南开区| 信丰县| 从江县| 博野县| 永福县| 平昌县| 兰州市| 宜兴市| 剑川县| 乐至县| 进贤县| 白水县| 榕江县| 临邑县| 枣阳市| 贡山| 土默特右旗| 海盐县| 婺源县| 新沂市| 靖边县| 会东县| 高州市| 林口县| 吉木乃县| 拉萨市| 乌兰察布市| 玉田县| 若尔盖县| 木兰县| 观塘区| 禹城市| 乐陵市| 黔西县| 南汇区| 武汉市| 麟游县| 桐柏县| 增城市|