Day 0x19 UVa10929 You can say 11

题意

  • 输入一整数,判断是否为 11 的倍数
  • 需要注意的有:
    1. 重复输入一整数 N 直到 0
    2. N 最大可到 1000 位
    3. 输出格式
      • N is a multiple of 11.
      • N is not a multiple of 11.

解法

  • 如何快速判断一个数是不是 11 的倍数?
  • 重复输入一字串 n (因为整数存不下) 直到 0
    char n[1000] = {0};
    
    while(scanf("%s", n)){
        if(*n == '0' && strlen(n) == 1){
            break;
        }
        else{
            ...
        }
    }
    
  • 透过 for 回圈及回圈变数 i 控制一加一减每个位数,要记得是字元所以要 - '0'
    int i;
    int difference = 0;
    
    for(i = 0; i < strlen(n); i++){
        if(i % 2 == 0){
            difference = difference + (n[i] - '0');
        }
        else{
            difference = difference - (n[i] - '0');
        }
    }
    
  • 最後判断是否为 11 的倍数再输出结果
    if(difference % 11 == 0){
        flag = true;
    }
    
    if(flag){
        printf("%s is a multiple of 11.\n", n);
    }
    else{
        printf("%s is not a multiple of 11.\n", n);
    }
    
  • C code
    #include<stdio.h>
    #include<string.h>
    #include<stdbool.h>
    
    int main(){
    
        char n[1000] = {0};
    
        while(scanf("%s", n)){
            if(*n == '0' && strlen(n) == 1){
                break;
            }
            else{
    
                int i;
                bool flag = false;
                int difference = 0;
    
                for(i = 0; i < strlen(n); i++){
                    if(i % 2 == 0){
                        difference = difference + (n[i] - '0');
                    }
                    else{
                        difference = difference - (n[i] - '0');
                    }
                }
    
                if(difference % 11 == 0){
                    flag = true;
                }
    
                if(flag){
                    printf("%s is a multiple of 11.\n", n);
                }
                else{
                    printf("%s is not a multiple of 11.\n", n);
                }
            }
        }
    
        return 0;
    }
    

<<:  Day12 HTML二

>>:  修改 DOM 元素样式

虹语岚访仲夏夜-9(专业的小四篇)

鲜红创伤  在夜里  暗淡无光 愈合後 变成透明的疤  日光下  仍是无光 三日月的慌 莫过於再十...

Day-01 前言

这是我30天的自我挑战,每篇文章都记录着自己的成长与收获,也请大家多多指教! Android是甚麽...

Day 29. F2E-完善过渡动画

昨天後来在看效果时,有发现过渡动画的元素已经完全超出卡片组件的范围了,这个不是我们想要的效果 理想...

16. STM32-I²C EEPROM DataSheet

上一篇介绍过了I2C的基本原理以及相关的函数,这一篇会介绍EEPROM来做为I2C实作的示范。 什麽...

Alpine Linux Porting (一点三?)

今天,我们要来作Alpine Linux的initramfs bootstrapping。 在近代的...