程序设计,请各位看一下,给个思路

题目如图,这个不算很难,但是想看一下程序设计的思路
,谢谢啦

img


这是个程序设计的题

第4题:

#include <stdio.h>

int numChain(int n)
{
    int t;
    printf("%d",n);
    while(n>=10){
        t = 0;
        while(n>0){
            t += (n%10)*(n%10);
            n /= 10;
        }
        n = t;
        printf("->%d",n);
    }
    printf("\n"); 
    return n;
}

int main()
{
    int i, N, count = 0;
    scanf("%d",&N);
    for (i=N;i>0;i--){
        if (numChain(i)==1) count++;
    }
    printf("其中,数字链尾数是1的个数:%d",count);
    return 0;
}

img

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

int main()
{
    char s[100] = {0};
    int n=0,i,j=0;
    scanf("%s", s);
    for (i = strlen(s)-1; i >= 0; i--)
        n += (s[i]-'0') * pow(2,j++);
    printf("%d\n",n);
    return 0;
}