牵风 发表于 2021-12-6 19:56:41

当数据为98,998的时候进位怎么写

对于一个正整数 n , 大于 n 、个位数为8 的数有很多个。
请你在大于 n 、个位数为 8 的所有数中,找出最小的哪一个数并输出。
输入
输入一个正整数 n(0 < n <= 10000 )
输出
输出大于n、个位数为 8的最小数。
样例输入 Copy
1688
样例输出 Copy
1698
#include <stdio.h>
#include <string.h>
char str;

int main() {

        int len;
        int num=0;
        while((scanf("%s",&str))!=EOF) {
                len=strlen(str);
                if(str<'8') {
                        str='8';
                }
                if(str>='8') {
                        str='8';
                        for(int i=1; i<len; i++) {
                                if(str<='8') {
                                        str++;
                                        break;
                                }
                        }
                }
                puts(str);
//                for(int i=0; i<len; i++)
//                        num=num*10+str-'0';
//                printf("%d",num);
        }

}

jhq999 发表于 2021-12-6 21:43:05

本帖最后由 jhq999 于 2021-12-6 21:48 编辑

if(n%10<8)
{
   n=n-(n%10)+8;
}
else
    n=(n/10+1)*10+8;
页: [1]
查看完整版本: 当数据为98,998的时候进位怎么写