/*买不到的题目问题描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数,表示每种包装中糖的颗数(都不多于1000)
输出格式一个正整数,表示最大不能买到的糖数
样例输入1 4 7
样例输出1 17
样例输入2 3 5
样例输出27*/
#include<stdio.h>
int GYS(int n,int m)//最大公约数 {
int t;
if(n<m) {
t=n; n=m; m=t;
}
if(n%m==0)
return m;
return GYS(m,n%m);
}
int GBS(int n,int m)//最小公倍数 {
int awn;
awn=n*m/GYS(n,m);
return awn; }
int main() {
int i,j,t,gcd,n,m,aws=0,flag,k;
scanf("%d %d",&n,&m);
gcd=GBS(n,m);
if(n<m) { t=n; n=m; m=t; }
int x=(gcd/m)+1;
for(i=gcd;i>=1;i--) {
flag=0;
for(k=0;k<=x;k++)
for(j=x;j>=0;j--) {
if(!(k==0&&j==0))//防止除零错误 {
if(i%(n*k+m*j)==0)
flag=1; } }
if(flag==0) {
aws=i;
break; }
}
printf("%d\n",aws);
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
int A[100000];
int main(){
int N1, N2;
cin >> N1 >> N2; //N1较小、N2较大。
if (N1 > N2)
swap(N1, N2);
for (int i = 0;i<100000/N1; i++) {
for (int j = 0; j<100000 / N2; j++) { if (i*N1 + j*N2 < 100000)
A[i*N1 + j*N2] = 1; } }
for (int i = 99999; i >= N1;i--) {
if (!A[i]) {
cout << i << endl;
break; } }
return 0;
}
二、/*复数四则运算 设计复数库,实现基本的复数加减乘除运算。 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。 注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入2 4 * -3 2
样例输出-14-8i
样例输入3 -2 + -1 3
样例输出2+1i*/
#include<stdio.h>
int main(){
char sign;
double a,b,c,d;
scanf("%lf %lf %c %lf %lf",&a,&b,&sign,&c,&d);
if(c==0 && d==0){
printf("error"); }
else if(sign=='+'){ printf("%g+%gi",a+c,b+d); }
else if(sign=='-'){
printf("%g%gi",a-c,b-d); }
else if(sign=='*'){
printf("%g%gi",a*c-b*d,a*d+b*c); }
else if(sign=='/'){
printf("%g%gi",(a*c+b*d)/(c*c+d*d),(b*c-a*d)/(c*c+d*d)); }
else{ printf("error"); }
return 0;
}
蓝杯十五 蓝杯十五 蓝杯十五 蓝杯十五 蓝杯十五
网友评论