不用math.h,pow.abs,计算la^b-b^al

不用abs和fabs的情况下计算整型的幂和绝对值:具体来说,给出整数a,b,la^b-b^al的值
输入
本题存在多组输入数据。保证数据组数≤100。
每一行输入为两个正整数a,b(0<a,b≤100);
保证运算过程不会超过int的范围。
输出
对于每一行输出,输出一行,为|ab-b|的值
输入样例
5 6
输出样例

仅供参考,谢谢!

img

img

img

#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;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^