求新数和倍数。
【问题描述】
输入正整数n和0~9范围内的一个数m,判断m是否存在于n中(用函数实现),若不存在则输出“m不存在于n中”(m和n以具体输入的值代替);若存在则删除n中的数字m,构成一个新数k(高位为原高位,低位为原低位),并用原数n除以新数k,得到倍数(保留2位小数),然后依次输出新数k及其倍数,中间以一个逗号分隔。输出结束不换行。
【样例输入1】
12345 2
【样例输出1】
1345,9.18
【样例说明1】
n为12345,m为2;删除2后的新数k为1345,n是k的9.18倍。
【样例输入2】
12045 0
【样例输出2】
1245,9.67
【样例说明2】
n为12045,m为0;删除0后的新数k为1245,n是k的9.67倍。
【样例输入3】
12345 6
【样例输出3】
6不存在于12345中
【样例说明3】
n为12345,m为6;输出“6不存在于12345中”。
#include<stdio.h>
#include<math.h>
int xinshu(int a, int b) {
int c[100], i=0;
while(a!=0){
c[i] = a % 10;
i++;
a = a / 10;
}
int n = i; int j; int flag = 0;
for (i = 0; i < n; i++) {
if (c[i] == b) {
for (j = i; j < n; j++)
c[j] = c[j + 1];
n--;
}
else flag++;
}
int sum = 0;
for (i = 0; i < n; i++) {
sum += c[i] * pow(10,(double) (i));
}
if(flag!=n)return sum;
else { return 0; }
}
int main() {
int a, b;
scanf_s("%d%d", &a, &b);
if (xinshu(a, b) != 0)printf("%d,%.2lf", xinshu(a, b), (double)(a) / xinshu(a, b));
else printf("%d不存在于%d中", b, a);
return 0;
}