zoukankan      html  css  js  c++  java
  • COJ 1102

    本题就是给出一个无穷大数,算其能否被11除尽

    Description

    Your job is, given a positive number N, determine if it is a multiple of eleven.

    Input specification

    The input is a file such that each line contains a positive number. A line containing the number 0 is the end of the input. The given numbers can contain up to 1000 digits.

    Output specification

    The output of the program shall indicate, for each input number, if it is a multiple of eleven or not.

    Sample input

    112233
    30800
    2937
    323455693
    5038297
    112234
    0
    

    Sample output

    112233 is a multiple of 11.
    30800 is a multiple of 11.
    2937 is a multiple of 11.
    323455693 is a multiple of 11.
    5038297 is a multiple of 11.
    112234 is not a multiple of 11.

    使用string模拟除法就能够了。

    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    bool divEleven(string s)
    {
    	int carry = 0;
    	for (int i = 0; i < s.size(); i++)
    	{
    		int d = carry * 10 + s[i] - '0';
    		carry = d % 11;
    	}
    	if (carry) return false;
    	return true;
    }
    
    void Eleven()
    {
    	string S;
    	while (cin>>S && "0" != S)
    	{
    		if (divEleven(S)) cout<<S<<" is a multiple of 11.
    ";
    		else cout<<S<<" is not a multiple of 11.
    ";
    	}
    }



  • 相关阅读:
    JVM StackOverflowError vs. OutOfMemoryError
    db2 command line notes
    my emacs configuration
    repackage android application
    file -i haha.csv
    QualType in clang
    STM in Clojure
    32bit / 64bit co-exist Linux, ld-linux.so, linux-gate.so.1 etc
    hash tree
    K-S Test
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4003046.html
Copyright © 2011-2022 走看看