不用abs和fabs的情况下计算整型的幂和绝对值:具体来说,给出整数a,b,la^b-b^al的值
输入
本题存在多组输入数据。保证数据组数≤100。
每一行输入为两个正整数a,b(0<a,b≤100);
保证运算过程不会超过int的范围。
输出
对于每一行输出,输出一行,为|ab-b|的值
输入样例
5 6
输出样例
仅供参考,谢谢!
#include<stdio.h>
long mypow(unsigned a, unsigned b)
{
long res = 1l;
for (int i = 0; i < (int)b; i++)
res *= a * 1ul;
return res;
}
int main(void)
{
unsigned a, b;
long r;
scanf("%u%u", &a, &b);
if (a < 1u || a > 100u || b < 1u || b > 100u)
return -1;
r = mypow(a, b) - mypow(b, a);
r = r > 0 ? r : -r;
printf("|%u^%u-%u^%u|=%ld\n", a, b, b, a, r);
return 0;
}
#include<iostream>
using namespace std;
int main(){
int a,b;
while(cin>>a>>b){
if(a==0&&b==0) break;
int ans=1;
for(int i=1;i<=b;i++) ans*=a;
ans-=b;
if(ans<0) ans=-ans;
cout<<ans<<endl;
}
return 0;
}
#include <stdio.h>
int power(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
int main() {
int a, b, result;
scanf("%d%d", &a, &b);
result = power(a, b) - power(b, a);
result = (result >= 0) ? result : -result;
printf("a^b-b^a的绝对值为:%d\n", result);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: