用Python 和 java 写 10 道题
1.已知1、1、2、3、5、8、13......就是从第三项开始每一项等于前两项之和。求第100项。python写a,b 1,1 #第一项和第二项 for _ in range(3,101): #从第3项计算到第100项需循环98次(前两项已有) a,b b,ab #a 变成前一项 b 变成新的当前项 # 循环结束 b 为第100项 print(f第100项是{b})java 写package Text0506; import java.math.BigInteger; public class De01 { public static void main(String[] args) { // 用BigInteger 处理大整数 BigInteger a BigInteger.ONE; //第1项 BigInteger b BigInteger.ONE; //第2项 for (int i 3; i 100; i) { BigInteger next a.add(b); //下一项 ab a b; //前一项前进 b next; //当前项更新 } System.out.println(第100项是 b); } }2、物不知数“出自《孙子算经》。题目为:今有物不知其数三三数之剩二五五数之剩三七七数之剩二问物几何?”。意思是说有一些物品不知道有多少个3个3个数的话还多出2个;5个5个数则多出3个;7个7个数也会多出2个。现假设物品总数不超过n(n1000)请编程计算满足条件的物品个数并输出。//“物不知数”出自《孙子算经》。// 题目为今有物不知其数三三数之剩二五五数之剩三七七数之剩二问物几何”//意思是说有一些物品不知道有多少个//3个3个数的话还多出2个5个5个数则多出3个7个7个数也会多出2个。//现假设物品总数不超过n (n1000)请编程计算满足条件的物品个数并输出。// 3个3个数的话还多出2个 总%3 2// 5个5个数则多出3个 总%5 3// 7个7个数也会多出2个 总%7 2//总 n1000python 写#现假设物品总数不超过n (n1000)请编程计算满足条件的物品个数并输出。 # # 3个3个数的话还多出2个 总%3 2 # 5个5个数则多出3个 总%5 3 # 7个7个数也会多出2个 总%7 2 # 总 n1000 # # 是否同时满足条件 # x % 3 2 # x % 5 3 # x % 7 2 # 物不知数 n int(input(请输入搜索上限n (1000): )) # 在循环开始前加found False # 目前没有找到符合条件的数字 # 比喻你是一个侦探走进一个大图书馆数字1到n找一本特定的书。 # 你刚进门口时手里拿的本子上写着“尚未找到”。 # 这个本子就是 found 变量。 # 刚开始设为 False是因为你确实还没开始找。 found False for x in range(1, n 1): if x % 3 2 and x % 5 3 and x % 7 2: print(f满足条件的数字是: {x}) # 2. 为什么要加 found True找到时的标记 found True if not found: print(在范围内无解)java 写package xmtwo; import java.util.Scanner; public class onethree { public static void main(String[] args) { Scanner sc new Scanner(System.in); System.out.println(请输入搜索上限n(1000):); int n sc.nextInt(); //不理解为什么总是加这一步 boolean found false; for (int x 1; x n ; x) { if (x %3 2 x %5 3 x%7 2) { System.out.println(满足条件的数字是: x); found true; } } if(!found){ System.out.println(在范围内无解); } } }3、完数一个数如果恰好等于不包含它本身所有因子之和这个数就称为完数”。例如6的因子为1、2、3而6123因此6是完数”。编程序找出100之内的所有完数。遍历 2 到1001不是完数,对每个数 i,找出所有小于i 的因子,求和若和等于i则输出。完数一个数如它的所有真因子除了它自己以外的因数加起来刚好等于它自己 那它 就是完数。一个数的因子除了它自己最大不可能超过他的一半python 写# 定义一个范围比如 100 limit 100 # 1. 遍历 2 到 100 的每一个数字 换数字 for num in range(2, limit 1): sum 0 # 每次检查新数字前把“累加器”清零 # 2. 找因子从 1 试到 num-1 for i in range(1, num): # 如果 num 除以 i 余数为 0说明 i 是因子 if num % i 0: #模运算 sum i # 3. 把因子加到总和里 # 4. 判断因子之和是否等于数字本身 if sum num: print(f{num} 是完数)package Text0506; //import java.util.ArrayList; public class De03 { public static void main(String[] args) { int limit 100; System.out.println(在 1 到 limit 之间的完数有); for (int num 2; num limit; num) { int sum 1; // 1 肯定是因子所以直接从 1 开始加省去算 1 的时间 // 只需要遍历到 num / 2 即可 // 比如找 100 的因子只需要找到 50 就够了后面不可能有了 for (int i 2; i num / 2; i) { if (num % i 0) { sum i; } } if (sum num) { System.out.println(num 是完数); } } } }4、编程:求100到200之间的素数并统计其个数。判断素数时只需检查从 2 到 sqrt(n) 是否有因子。注意 1 不是素数但范围从 100 开始所以没问题。素数也叫质数一个大于 1 的整数如果只能被 1 和它自己整除那它就是素数。换句话说它找不到其他的因子。python 写import math count 0 for num in range(101, 201): isprime True limit int(math.sqrt(num))1 for i in range(2, limit): if num % i 0: isprime False break if isprime: print(num,end ) count 1 print(f\n一共有{count}个素数)java 写public class De04 { public static void main(String[] args) { // 1. 定义范围 int start 100; int end 200; int count 0; System.out.println(100 到 200 之间的素数有); // 2. 主循环负责遍历 for (int i start; i end; i) { // 3. 调用专门的方法去判断 // 这里的 isPrime 就像是一个黑盒子我们只关心它返回是 true 还是 false if (isPrime(i)) { System.out.print(i ); count; } } System.out.println(\n一共有 count 个素数); } /** * 4. 专门负责判断素数的方法 * 输入一个整数 n * 输出布尔值true 表示是素数false 表示不是 */ public static boolean isPrime(int n) { // 边界情况处理虽然本题从100开始但养成好习惯很重要 if (n 1) return false; // 核心算法试除法 // Math.sqrt(n) 计算根号 n for (int i 2; i Math.sqrt(n); i) { if (n % i 0) { // 只要发现一个能整除的说明不是素数 // 直接返回 false方法结束 return false; } } // 如果循环跑完了都没返回 false说明它是素数 return true; } }5、编程:显示前100个回文素数。每行显示10个素数。(回文素数是指一个数是素数也是回文数。例如:131既是素数也是回文数。)回文素数是指既是素数又是回文数正读反读相同的数。例如 131。输出前100个回文素数每行显示10个。6、利用循环程序打印如下三角形程序***************python 写for i in range(5,0,-1): print(* * i)java 写public class InvertedTriangle { public static void main(String[] args) { int rows 5; for (int i rows; i 1; i--) { for (int j 1; j i; j) { System.out.print(*); } System.out.println(); } } }7、编程:打印九九乘法表python 写print(\n九九乘法表) for i in range(1,10): for j in range(1,i1): print(f{j}*{i}{i*j},end\t) print()java 写package Text0506; public class De07 { public static void main(String[] args) { for (int i 1; i 9; i) { for (int j 1; j i; j) { // System.out.print(j × i (i * j) \t); } System.out.println(); } } }8、利用循环程序打印如下图形。ABBCCCDDDDEEEEEFFFFFFpython 写reslt 6 # 外层循环控制行数从 1 到 6 for i in range(1, reslt1): # 1. 算出这一行该打印哪个字母 # ord(A) 拿到 A 的数字编号 i - 1 算出偏移量 # chr() 再把数字变回字母 ch chr(ord(A) i - 1) # 2. 内层循环控制打印个数 # range(1, i 1) 相当于从 1 循环到 i for j in range(1, i 1): # end 的意思是打印完别换行后面接空字符 print(ch, end) # 3. 这一行打完了换个行 print()java 写package Text0506; public class De08 { public static void main(String[] args) { int rows 6; //一共要打印6行 for (int i 1; i 6 ; i) { //算出这一行该打印哪个字母 // i 1 -A ,i 2 -B ,以此类推 char ch (char) (A i -1); //打印字母这一行要打印 i 个字母 for (int j 1; j i ; j) { System.out.print(ch); } // 这一行打完了换行 System.out.println(); } } }9、输入一段字符串统计其中大写字母、小写字母、数字、空格和其它字符的个数。python#1、输入一段字符串统计其中 # 大写字母、小写字母、数字、空格和其它字符的个数。 # 1用 input() 获取字符串 # 2遍历 循环字符串中的每一个元素 # 3判断字符串的类型 # isupper(): 是否大写 # islower(): 是否小写 # isdigit(): 是否数字 # isspace(): 是否空格 # 4计数 变量累加 text input(请输入一段字符串) # 初始化计数器 upper_count 0 lower_count 0 digit_count 0 space_count 0 other_count 0 # 大写小写数字空格其他 # 会自动识别字母不需要手动比较 for char in text: if char.isupper(): #大写字母 upper_count 1 elif char.islower(): #小写字母 lower_count 1 elif char.isdigit(): #数字 digit_count 1 elif char : #空格(只统计半角空格) space_count 1 else: other_count 1 print(f大写字母{upper_count}) print(f小写字母{lower_count}) print(f数字{digit_count}) print(f空格{space_count}) print(f其他字符{other_count})java 写10、编程:已知有三种色块(红(“red”)、绿(“green”)、蓝(“blue”))现随机生成50个色块编程统计各种色块的数量并按从大到小排序输出。# 随机生成 50 个色块(红绿蓝)统计数量并按数量 从小到大 排序输出 # 1.定义颜色列表[red,green,blue] # 使用 random.choicecloors)随机选择一个颜色 # 重复50次存入列表 # 排序 (升序)python 写# 1.定义颜色列表[red,green,blue] # 使用 random.choicecloors)随机选择一个颜色 # 重复50次存入列表 # 排序 (升序) import random from collections import Counter colors [red, green, blue] # 生成 50 个随机颜色列表 random_colors [random.choice(colors) for _ in range(50)] # random.choice(colors) 从列表中随机选一个元素 # 统计 counter Counter(random_colors) # 按数量排序 for color, num in sorted(counter.items(), keylambda x: x[1]): # lambda x :x[1] 表示按元组的第二个元素数量进行排序 print(f{color}: {num} 个)java 写
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2593991.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!