1、首先我來整理下這到題,抽取主要提干
我們提供的服務有:成都網(wǎng)站建設、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、含山ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的含山網(wǎng)站制作公司
a=4 和 b=7 最大不能組合出來的數(shù)是c= 17
a=3 和 b=5 最大不能組合出來的數(shù)是c= 7
當a b值任意 求c值
2、java 代碼
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class T_1796140699890495867html {
public static void main(String[] args) throws Exception {
//輸出段
BufferedReader brKey = new BufferedReader(new InputStreamReader(System.in));
System.out.println("用戶輸入:");
String strNum = brKey.readLine();
String[] oneAndTwoNums = strNum.split(" ");
brKey.close();
//處理段
int boxOne,boxTwo,impNum,bufNum;
boxOne = Integer.valueOf(oneAndTwoNums[0]);
boxTwo = Integer.valueOf(oneAndTwoNums[1]);
//如果第一個數(shù)大于第二個數(shù),那么調(diào)換位置
if(boxTwo boxOne){
boxOne = boxOne + boxTwo;
boxTwo = boxOne - boxTwo;
boxOne = boxOne - boxTwo;
}
//預定義值
impNum = boxOne * boxTwo;
//臨時計算數(shù)
bufNum = impNum;
while(bufNum = 0){
if(bufNum % boxOne == 0){
bufNum = (-- impNum);
}else if(bufNum % boxTwo == 0){
bufNum = -- impNum;
}else{
bufNum -= boxTwo;
}
}
//輸出段
System.out.println("程序應該輸出:");
System.out.println(impNum);
}
}
3、運行截圖
/**
*?@(#)Eat_Candy.java
*
*
*?@author?
*?@version?1.00?2013/10/17
*/
import?java.util.*;
import?java.math.*;
public?class?Eat_Candy?{
/**
?*?Creates?a?new?instance?of?codeEat_Candy/code.
?*/
//?public?Eat_Candy()?{
//?}
/**
?*?@param?args
?*????????????the?command?line?arguments
?*/
public?static?void?main(String[]?args)?{
Scanner?reader?=?new?Scanner(System.in);
long?number?=?reader.nextLong();
long?size?=?reader.nextLong();
long?sum?=?0,?max?=?0,?b?=?0;
b?=?reader.nextLong();
for?(long?j?=?0;?j??number;?j++)?{
if?(size??0?||?size??1000000)
break;
for?(long?i?=?0;?i??size;?i++)?{
sum?+=?b;
if?(b??max)?{
max?=?b;
}
}
if?(sum?-?max?+?1l?=?max)?{
System.out.println("YES");
}?else
System.out.println("NO");
}
//?TODO?code?application?logic?here
}
}
初步做了一個出來,但是效率并不是很高,前100個計算速度還可以,但是往后就很慢了。如果什么時候有空的話可以再看看,先給你代碼吧,不知道能不能幫上你
public?class?AlisandaNumber?{
private?static?final?int?MAX_INDEX?=?1000;?//?可以先把這個常量改為1-6,驗證正確性
public?static?void?main(String[]?args)?{
int?a?=?0;
int?index?=?0;
while(index??MAX_INDEX)?{
a?+=?6;?//?每次循環(huán)自增6,由題目規(guī)律可知A是6的倍數(shù)
boolean?breakOut?=?false;
//?最大的約數(shù)為此數(shù)的平方根,因為如果是兩個平方根相乘的話,剩下的就只有1了
int?maxNum?=?(int)?Math.ceil(Math.sqrt(a));
p:
for(int?p?=?1;?p?=?maxNum;?p?++)?{
if(a?%?p?!=?0)?{
continue;?//?如果不是約數(shù)的話,沒必要考慮,下同
}
//?最大約數(shù)為平方根的相反數(shù),原理同上
maxNum?=?(int)?Math.ceil(Math.sqrt(a?/?p));
for(int?q?=?-1;?q?=?-maxNum;?q?--)?{?//?q和r必為負數(shù)
if(a?%?q?!=?0)?{
continue;
}
int?r?=?a?/?(p?*?q);
int?nonZero?=?p?*?q?+?p?*?r?+?q?*?r;
if?(nonZero?==?0)?{
continue;
}
if((a?==?p?*?q?*?r)??(a?==?(p?*?q?*?r)?/?(nonZero)))?{
index?++;
breakOut?=?true;
break?p;?//?跳出外層循環(huán)
}
}
}
if(breakOut)?{
System.out.println(String.format("第%d個壓力山大數(shù)是%d",?index,?a));
}
}
}
}