问题:
曾参加锐捷网络2006届校园招聘JAVA开发工程师笔试,有个题目是:
任意大于或等于12的正整数的邮资都能由4和5两种面值的邮票组成。
将其转化为数学命题:
任意大于或等于12的正整数的邮资都能由4和5两种面值的邮票组成。
将其转化为数学命题:
任意大于或等于13的整数都被4和5组成,即:
对任意的正整数i,总是存在非负正整数x,y,使得4x+5y=12+i成立
对任意的正整数i,总是存在非负正整数x,y,使得4x+5y=12+i成立
证明:
任意大于或等于13的整数都被4和5组成.
证:
容易验证:
1)13能被4和5组成
2)13<h<26之间的整数能被4和5组成
设任意大于或等于13的整数为N.
N可以表示成为:
N=13*n+t (n>=1,0<=t<13,t,n都为整数)
即:N=13*(n-1)+(13+t)
13*(n-1)能被13整除,而13能被4和5组成.因此,13*(n-1)也被4和5组成.
因为0<=t<13,所以13<13+t<26.故13+t能被4和5组成.
因此:N能被4和5组成.
至此,已经证明:任意大于或等于13的整数都被4和5组成.
证:
容易验证:
1)13能被4和5组成
2)13<h<26之间的整数能被4和5组成
设任意大于或等于13的整数为N.
N可以表示成为:
N=13*n+t (n>=1,0<=t<13,t,n都为整数)
即:N=13*(n-1)+(13+t)
13*(n-1)能被13整除,而13能被4和5组成.因此,13*(n-1)也被4和5组成.
因为0<=t<13,所以13<13+t<26.故13+t能被4和5组成.
因此:N能被4和5组成.
至此,已经证明:任意大于或等于13的整数都被4和5组成.
推论:
对任意的正整数i,总是存在非负正整数x,y,使得mx+(m+1)y=(m-1)m+i成立(m为大于1的正整数)
private static void createAndShowGUI()
{
JFrame.setDefaultLookAndFeelDecorated(true);
Test001 converter = new Test001();
}
对任意的正整数i,总是存在非负正整数x,y,使得mx+(m+1)y=(m-1)m+i成立(m为大于1的正整数)
程序实现:
我试着用JAVA实现了:
我试着用JAVA实现了:
输入一个整数,输出该数是由几个4和几个5组成的。
//Author: Mapping
//整化零转换器
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test001 implements ActionListener
{
JFrame converterFrame;
JPanel converterPanel;
JTextField total;
JLabel totalLabel;
JButton convert;
public Test001()
{
converterFrame = new JFrame("整化零转换器");
converterFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
converterFrame.setSize(new Dimension(120, 40));
{
JFrame converterFrame;
JPanel converterPanel;
JTextField total;
JLabel totalLabel;
JButton convert;
public Test001()
{
converterFrame = new JFrame("整化零转换器");
converterFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
converterFrame.setSize(new Dimension(120, 40));
converterPanel = new JPanel(new GridLayout(2, 2));
addWidgets();
converterFrame.getRootPane().setDefaultButton(convert);
converterFrame.getContentPane().add(converterPanel, BorderLayout.CENTER);
converterFrame.pack();
converterFrame.setVisible(true);
}
converterFrame.getContentPane().add(converterPanel, BorderLayout.CENTER);
converterFrame.pack();
converterFrame.setVisible(true);
}
private void addWidgets()
{
total = new JTextField(2);
convert = new JButton("Convert");
totalLabel = new JLabel("Result:", SwingConstants.LEFT);
{
total = new JTextField(2);
convert = new JButton("Convert");
totalLabel = new JLabel("Result:", SwingConstants.LEFT);
convert.addActionListener(this);
converterPanel.add(total);
converterPanel.add(convert);
converterPanel.add(totalLabel);
totalLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
}
converterPanel.add(convert);
converterPanel.add(totalLabel);
totalLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
}
public void actionPerformed(ActionEvent event)
{
int a=Integer.parseInt(total.getText());
int b=a/4;
int c=a%4;
int d=b-c;
if(a>=12)
{
totalLabel.setText(a+"是由"+d+"个4和"+c+"个5组成");
}
else
{
totalLabel.setText(a+"不能转化");
}
}
{
int a=Integer.parseInt(total.getText());
int b=a/4;
int c=a%4;
int d=b-c;
if(a>=12)
{
totalLabel.setText(a+"是由"+d+"个4和"+c+"个5组成");
}
else
{
totalLabel.setText(a+"不能转化");
}
}
private static void createAndShowGUI()
{
JFrame.setDefaultLookAndFeelDecorated(true);
Test001 converter = new Test001();
}
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run()
{
createAndShowGUI();
}
});
}
}
{
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run()
{
createAndShowGUI();
}
});
}
}