2010全国软件大赛决赛试题6

本文介绍了一个Java程序,该程序用于找出所有由两个奇数相乘得到的奇数结果,其中乘积的每一位也都是奇数的情况。程序通过嵌套循环遍历可能的两位数组合,并检查它们的乘积是否符合要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package FinalExams_2010;

/*
* 如下公式:**x**=***
* 每一个*号代表一个数,其中x代表乘号,满足这个式的数有很多如:
* 13*15=195
* 不考虑重复的数,但要是每个*号代表的数都是奇数,那这样的式子就不多了,输出这样的所有式子,每一行输出一个
* 如:13x15=195
*/

public class Questions_6 {

public static void main(String[] args) {
int first = 0, second = 0, result;
String str = "";
int count = 0;//计数器
for (int i = 1; i <= 9; i += 2)// 第一个数的十位
{
for (int j = 1; j <= 9; j += 2)// 第一个数的个位
{
first = i * 10 + j;// 第一个数
for (int m = 1; m <= 9; m += 2)// 第二个数的十位
{
for (int n = 1; n <= 9; n += 2)// 第二个数的个位
{
second = m * 10 + n;// 第二个数
result = first * second;// 乘积
str = String.valueOf(result);// int转String
char ch[] = new char[str.length()];
ch = str.toCharArray();// String转char
int var = 0;// 循环变量
boolean flag = true;// 标记
while (var < ch.length) {
// 循环到最后一位,且标记为true
if (var == ch.length - 1 && flag == true) {
count++;// 计数器+1
System.out.println(first + "*" + second + "="
+ result);
}
if (ch[var] % 2 != 0)// 判断是否为奇数
{
flag = true;// 设置这个数为奇数
var++;// 循环变量+1
} else {
flag = false;// 这个数不是奇数,标记为false
break;// 中断循环
}
}
}
}
}
}
System.out.println("共有" + count + "个这样的式子");
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值