华南农oj18443 除法等式

Description

输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j各代表0~9中的一个数字
除了0可以重复外,其它数字不能重复,2<=n<=90000。

输入格式

多case,每行一个数字,最后一个数字是0

输出格式

除了最后一行0不用处理,
其它每个case,按被除数由小到大输出所有满足等式的情况
注:如果没有满足条件的等式,该case结束后,也需要输出一个空行

两个case之间用一个空行分隔

输入样例

44
666
6666
20000
0

输出样例

00176/00004=44
00308/00007=44
00352/00008=44
00572/00013=44
00704/00016=44
00792/00018=44
00836/00019=44
01056/00024=44
01408/00032=44
01584/00036=44
01628/00037=44
01672/00038=44
01760/00040=44
01892/00043=44
01980/00045=44
02068/00047=44
02156/00049=44
02376/00054=44
02948/00067=44
03080/00070=44
03168/00072=44
03256/00074=44
03520/00080=44
03564/00081=44
03740/00085=44
04180/00095=44
04268/00097=44
04312/00098=44
04620/00105=44
04752/00108=44
05720/00130=44
05896/00134=44
05984/00136=44
06028/00137=44
06072/00138=44
06380/00145=44
06908/00157=44
07040/00160=44
07392/00168=44
07920/00180=44
08360/00190=44
08536/00194=44
08976/00204=44
09108/00207=44
09460/00215=44
09504/00216=44
09548/00217=44
10560/00240=44
10780/00245=44
13068/00297=44
14080/00320=44
15268/00347=44
15840/00360=44
16280/00370=44
16720/00380=44
16940/00385=44
17600/00400=44
17820/00405=44
17952/00408=44
18700/00425=44
18920/00430=44
19008/00432=44
19800/00450=44
20108/00457=44
20680/00470=44
20900/00475=44
21560/00490=44
21780/00495=44
23760/00540=44
26004/00591=44
27940/00635=44
29480/00670=44
30140/00685=44
30712/00698=44
30800/00700=44
31020/00705=44
31680/00720=44
31856/00724=44
31900/00725=44
32560/00740=44
35024/00796=44
35200/00800=44
35640/00810=44
35904/00816=44
37400/00850=44
40260/00915=44
40700/00925=44
41008/00932=44
41800/00950=44
42108/00957=44
42680/00970=44
43120/00980=44
45628/01037=44
45672/01038=44
46200/01050=44
47520/01080=44
47652/01083=44
57200/01300=44
58476/01329=44
58960/01340=44
59268/01347=44
59840/01360=44
60280/01370=44
60720/01380=44
60940/01385=44
63800/01450=44
65032/01478=44
67408/01532=44
67892/01543=44
69080/01570=44
69432/01578=44
70048/01592=44
70400/01600=44
72380/01645=44
73920/01680=44
74052/01683=44
79200/01800=44
79420/01805=44
83600/01900=44
84700/01925=44
85360/01940=44
89760/02040=44
90068/02047=44
90376/02054=44
91080/02070=44
91300/02075=44
91740/02085=44
94600/02150=44
95040/02160=44
95348/02167=44
95480/02170=44

27306/00041=666
41958/00063=666
43290/00065=666
52614/00079=666
53946/00081=666
63270/00095=666

20000/00001=20000
40000/00002=20000
60000/00003=20000
80000/00004=20000

提示

提示:6666没有找到满足条件的等式

主要是固定一个数,这样枚举就事半功倍。

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[10];
int check(int x,int y){
	int b=x;
	memset(a,0,sizeof(a));
	while(b){
		a[b%10]++;b/=10;
	}
	b=y;
	while(b){
		a[b%10]++;b/=10;
	}
	for(int i=1;i<=9;i++){
		if(a[i]>=2) return 0;
	}
	return 1;
}//检查重复 
int main(){
	int n;cin>>n;
	while(n){
		for(int i=1;i<=99999;i++){
			if(n*i>=99999) break;
			int y=n*i;
			if(check(i,y)){
				printf("%05d/%05d=%d\n",y,i,n);
			}
		}
		cout<<endl;
		cin>>n;
	}//枚举 
	return 0;
} 

<think>好的,用户让我介绍一下C语言中的除法。首先,我需要回忆一下C语言里除法的基本知识点,然后组织成易懂的中文解释。 首先,C语言的除法运算符是“/”。需要区分整数除法和浮点数除法的情况。当两个操作数都是整数时,进行的是整数除法,结果会截断小数部分,只保留整数部分。例如,5/2的结果是2,而不是2.5。这一点可能对初学者来说容易出错,需要特别强调。 然后,如果其中一个操作数是浮点数,结果就会是浮点数。比如5.0/2或者5/2.0,结果都是2.5。这里要提醒用户注意数据类型的影响,避免因为类型不当导致计算结果不符合预期。 接下来,用户可能想知道负数的除法如何处理。在C语言中,除法的结果符号遵循数学规则,同号为正,异号为负。但余数的处理可能因编译器而异,尤其是在C99标准之前,不同编译器对负数的取余可能有不同结果。比如-5/2在C99之后是-2,余数-1,但之前可能有不同实现。需要说明标准的变化,以及建议如何处理。 另外,余数运算符“%”也需要提及,它和除法的关系密切。例如,a = b * (a/b) + a%b,这个等式在C中成立,但要注意余数的符号与被除数相同。例如,-5%2的结果是-1,而5%-2的结果是1,这可能导致一些混淆,需要举例说明。 还要提到除零错误,整数除以零会导致运行时错误,而浮点数除以零会得到无穷大或NaN,具体取决于编译器。这部分需要警告用户避免除零操作,以及如何处理可能的异常情况。 可能用户的实际应用场景是做数学运算,或者在算法中需要处理除法结果的不同情况。比如,分页计算时如何向上取整,或者需要浮点精度时的处理。可以给出一些常见问题的解决方法,如使用类型转换、ceil函数或者自行编写取整逻辑。 另外,可以举几个例子来展示不同情况下的结果,比如整数除法、浮点除法、负数情况,以及余数的计算。这样用户能更直观地理解。 总结一下,回答的结构应该是先介绍运算符,区分整数和浮点除法,讨论负数情况,余数处理,除零问题,以及实际应用中的注意事项和例子。需要注意用简单的中文,避免专业术语过多,必要时举例说明。</think>在C语言中,除法运算涉及以下核心知识点和注意事项: ### 一、基础运算符 - 除法运算符:`/` - 取余运算符:`%` ### 二、整数除法 vs 浮点除法 | 操作数类型 | 结果类型 | 示例 | 输出结果 | |------------------|----------|----------------|----------| | 两个整数 | 整数 | `5 / 2` | 2 | | 至少一个浮点数 | 浮点数 | `5.0 / 2` | 2.5 | ### 三、负数处理规则 1. **商的方向**: - 同号得正,异号得负 - `-7 / 3 = -2` `7 / -3 = -2` 2. **余数规则**: - 余数符号与被除数相同 - `-7 % 3 = -1` `7 % -3 = 1` ### 四、典型问题解决方案 1. **向上取整**: ```c int pages = (items + ITEMS_PER_PAGE - 1) / ITEMS_PER_PAGE; ``` 2. **浮点精度控制**: ```c double result = (double)a / b; // 强制类型转换 `
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值