我们先设C=(A-B),然后这个题根据题意很容易得出一个表达式:A-A/10=C。
然后同时乘以10得到:10*A-(A/10)*10=C*10。
这时会发现(A/10)*10等于A-x,x是A的末尾数。
所以:9*A+x=10*C。枚举末尾数即可。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int t;
typedef unsigned long long int ull;
ull n;
int main()
{
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
scanf("%llu",&n);
printf("Case %d: ",i);
int flag=0;
for(int j=9;j>=0;j--)
{
ull num=n*10-j;
if(num%9==0)
{
if(flag) printf(" ");
printf("%llu",num/9);
flag=1;
}
}
printf("\n");
}
return 0;
}
本文介绍了一个C程序,用于解决一个特定的数学问题。该程序通过枚举末尾数来找出满足条件的整数,即存在整数A和B使得C=A-B,并且A-A/10=C。程序使用了标准输入输出函数以及基本的循环和条件判断。
295

被折叠的 条评论
为什么被折叠?



