当前位置: 首页 > news >正文

用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,a+b #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); //下一项 =a+b a = b; //前一项前进 b = next; //当前项更新 } System.out.println("第100项是:" + b); } }

2、物不知数

“出自《孙子算经》。题目为:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。
意思是说有一些物品,不知道有多少个,3个3个数的话,还多出2个;5个5个数则多出3个;7个7个数也会多出2个。
现假设物品总数不超过n(n<=1000),请编程计算满足条件的物品个数并输出。

//“物不知数”出自《孙子算经》。
// 题目为:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”
//意思是说有一些物品,不知道有多少个,
//3个3个数的话,还多出2个;5个5个数则多出3个;7个7个数也会多出2个。
//现假设物品总数不超过n (n<=1000),请编程计算满足条件的物品个数并输出。

// 3个3个数的话,还多出2个 总%3 == 2
// 5个5个数则多出3个 总%5 == 3
// 7个7个数也会多出2个 总%7 == 2
//总 n<=1000

python 写

#现假设物品总数不超过n (n<=1000),请编程计算满足条件的物品个数并输出。 # # 3个3个数的话,还多出2个 总%3 == 2 # 5个5个数则多出3个 总%5 == 3 # 7个7个数也会多出2个 总%7 == 2 # 总 n<=1000 # # 是否同时满足条件 # 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,而6=1+2+3,因此6是"完数”。编程序找出100之内的所有完数。
遍历 2 到100(1,不是完数),对每个数 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,i+1): 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、利用循环程序,打印如下图形。

A

BB

CCC

DDDD

EEEEE

FFFFFF

python 写

reslt = 6 # 外层循环:控制行数,从 1 到 6 for i in range(1, reslt+1): # 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.choice(cloors)随机选择一个颜色 # 重复50次,存入列表 # 排序 (升序)

python 写

# 1.定义颜色列表['red','green','blue'] # 使用 random.choice(cloors)随机选择一个颜色 # 重复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(), key=lambda x: x[1]): # lambda x :x[1] 表示按元组的第二个元素(数量)进行排序 print(f"{color}: {num} 个")

java 写

http://www.jsqmd.com/news/774977/

相关文章:

  • MCP协议赋能:Qdrant向量数据库的标准化AI应用集成实践
  • 基于PHP+Swoole与RAG的AI应用私有化部署全栈实战
  • 特斯拉Model 3/Y CAN总线数据采集终极指南:5分钟掌握车辆系统监控
  • uni-app 全能日历组件,支持农历、酒店预订、打卡签到、价格日历多种场景
  • 5分钟快速上手!Calibre豆瓣插件终极安装指南,轻松获取中文图书元数据
  • AI编程助手集成Codex CLI:MCP协议实现智能代码分析与本地模型部署
  • AI原生OPC项目路演实录分享
  • 怎么配置中转站,稳定的爽用gpt 5.5,附cc switch + codex 配置教程
  • 第六篇:Redo Log与Binlog——崩溃恢复的底层保障
  • AutoJS Pro9.3最新文档详解与入门教程
  • Arm架构通用定时器原理与应用全解析
  • Flutter for OpenHarmony 学习路线实战:从环境搭建到跨端数据持久化全流程解析
  • MYSQL的视图
  • Termi AI:基于Electron的智能桌面开发伴侣,集成Vite预览与AI编程助手
  • 第七篇:慢查询分析与SQL优化实战
  • copilot学生认证按键无法点击
  • golang如何实现桌面应用热更新_golang桌面应用热更新实现攻略
  • MyBatis 高频八股文:从 Mapper 到缓存,一篇搞懂常见面试题
  • Python配置管理实战:从环境变量到类型安全,详解Tanuki单文件库设计
  • #81_闲谈语言的分类
  • linux kernel CONFIG_KCMP解析
  • YOLOv11室内地面塑料袋目标检测数据集-30张-Plastic-Bag-1
  • 微信福音:2345清理王微信专清功能介绍
  • 告别GPIO模拟!用STM32的FSMC高效驱动TFT屏,刷图速度提升实测
  • 吃透C++ STL map/set:从入门到实战,新手也能轻松上手
  • 车载诊断架构---解答售后关于Service 19 06疑问带来的反思
  • 3203黄大年茶思屋榜文保姆级全落地解法「32期3题」量子启发式算法|大规模百万节点图平衡最小分割优化
  • 用Python+PuLP搞定钢管运输优化:手把手复现2000年数模国赛B题
  • 大语言模型如何构建创业者认知代理:从特征工程到RAG应用
  • dotnet-skills:让AI助手掌握现代.NET开发最佳实践