关于c语言的一个程序算法

img


用简单易理解的方式
写注释

#include <stdio.h>
#include <math.h>
int main()
{
    int m,n,b=0,t,a;
    scanf("%d%d",&m,&n);
    t = m;
    while(t>0)
    {
        b++;
        t=t/10;
    }
    printf("%d ",b);
    for(t=1;t<=n;t++)
    {
        a=m%10;
        m=m/10;
        m = a*pow(10.0,b-1)+m;
    }
    printf("%d",m);
    return 0;
}
 


//
// Created by qza2468 on 2021/11/4.
//

#include <stdio.h>


int main (int argc, char **argv) {
    int n, m;
    // get input and store them
    scanf("%d %d", &n, &m);

    // how many digits in n
    int digits = 0;
    int n_tmp = n;
    while (n_tmp != 0) {
        n_tmp /= 10;
        digits++;
    }

    // rotate n.
    n_tmp = n;
    // rotate `digits` digits have no effect.
    m %= digits;

    int result = 0; // result
    int pos = 0; // what digit I'm processing.
    while (pos < digits) {
        int num = n_tmp % 10; // the `pos` digit of n;
        n_tmp /= 10;

        if (m > pos) {
            // loop to * 10
            for (int i = 0; i < pos - m + digits; i++)
                num *= 10;
            result += num;
        }
        else {
            // loop to * 10
            for (int i = 0; i < pos - m; i++)
                num *= 10;
            result += num;
        }

        pos++;
    }

    // output
    printf("%d %d", digits, result);
}

我建议你在纸上运行一下我写的,相信你很快就会明白的,加油。