problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing3373 命名空间参考

  1. 进制转换
更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing3373, case1)
 
 TEST (acwing3373, case2)
 

详细描述

  1. 进制转换

函数说明

◆ main()

int acwing::acwing3373::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing.cpp7537 行定义.

7537 {
7538 string input;
7539 while(cin >> input) {
7540 if(input == "0") {
7541 cout << 0 << endl;
7542 continue;
7543 }
7544 unsigned short promotion = 0;
7545 vector<unsigned short> result = vector<unsigned short>();
7546 vector<unsigned short> charvec = vector<unsigned short>(input.length());
7547 for(auto i = 0; i < input.length(); i++) {
7548 charvec[i] = input[i] - '0';
7549 }
7550 vector<unsigned short> next = vector<unsigned short>();
7551 while(!charvec.empty() && !(charvec.size() == 1 && charvec[0] == 0)) {
7552 for(unsigned short d: charvec) {
7553 unsigned short digit = promotion * 10 + d;
7554 if(digit / 2 > 0 || !next.empty()) {
7555 next.push_back(digit / 2);
7556 }
7557 promotion = digit % 2;
7558 }
7559 result.push_back(promotion);
7560 promotion = 0;
7561 charvec = next;
7562 next.clear();
7563 }
7564 for(auto i = result.rbegin(); i != result.rend(); i++) {
7565 cout << *i;
7566 }
7567 cout << endl;
7568 }
7569 return 0;
7570 }

被这些函数引用 TEST().

◆ TEST() [1/2]

acwing::acwing3373::TEST ( acwing3373  ,
case1   
)

在文件 acwing_test.cpp3621 行定义.

3621 {
3622 istringstream in("0\n"
3623 "1\n"
3624 "3\n"
3625 "8");
3626 auto out = ostringstream();
3627 main(in, out);
3628 const auto ans = out.str();
3629 ASSERT_EQ("0\n"
3630 "1\n"
3631 "11\n"
3632 "1000\n",
3633 ans);
3634 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

acwing::acwing3373::TEST ( acwing3373  ,
case2   
)

在文件 acwing_test.cpp3636 行定义.

3636 {
3637 istringstream in("23\n"
3638 "2474\n"
3639 "6807\n"
3640 "99552\n"
3641 "40\n"
3642 "53\n"
3643 "2464\n"
3644 "66\n"
3645 "11\n"
3646 "9\n"
3647 "4020\n"
3648 "52\n"
3649 "240\n"
3650 "89\n"
3651 "45206\n"
3652 "575\n"
3653 "15856\n"
3654 "13\n"
3655 "575\n"
3656 "2\n"
3657 "99453\n"
3658 "16593\n"
3659 "4\n"
3660 "3\n"
3661 "4\n"
3662 "55\n"
3663 "846\n"
3664 "8471\n"
3665 "5\n"
3666 "66816\n"
3667 "31273\n"
3668 "5\n"
3669 "215\n"
3670 "54\n"
3671 "175\n"
3672 "93369\n"
3673 "17279\n"
3674 "993\n"
3675 "56181\n"
3676 "9411\n"
3677 "6298\n"
3678 "939\n"
3679 "48162\n"
3680 "4\n"
3681 "8643\n"
3682 "930\n"
3683 "4\n"
3684 "9\n"
3685 "4251\n"
3686 "629\n"
3687 "7\n"
3688 "92001\n"
3689 "658\n"
3690 "84\n"
3691 "5\n"
3692 "42\n"
3693 "66\n"
3694 "6\n"
3695 "64\n"
3696 "45229\n"
3697 "18566\n"
3698 "67680\n"
3699 "15\n"
3700 "13\n"
3701 "4\n"
3702 "88888\n"
3703 "97\n"
3704 "9262\n"
3705 "5\n"
3706 "75\n"
3707 "5932\n"
3708 "27950\n"
3709 "698\n"
3710 "471\n"
3711 "22\n"
3712 "6\n"
3713 "56611\n"
3714 "8706\n"
3715 "799\n"
3716 "70\n"
3717 "96161\n"
3718 "525\n"
3719 "1256\n"
3720 "26939\n"
3721 "229\n"
3722 "228\n"
3723 "1\n"
3724 "5\n"
3725 "523\n"
3726 "293\n"
3727 "2297\n"
3728 "154\n"
3729 "286\n"
3730 "27487\n"
3731 "583\n"
3732 "223\n"
3733 "9\n"
3734 "510\n"
3735 "50110\n"
3736 "5");
3737 auto out = ostringstream();
3738 main(in, out);
3739 const auto ans = out.str();
3740 ASSERT_EQ("10111\n"
3741 "100110101010\n"
3742 "1101010010111\n"
3743 "11000010011100000\n"
3744 "101000\n"
3745 "110101\n"
3746 "100110100000\n"
3747 "1000010\n"
3748 "1011\n"
3749 "1001\n"
3750 "111110110100\n"
3751 "110100\n"
3752 "11110000\n"
3753 "1011001\n"
3754 "1011000010010110\n"
3755 "1000111111\n"
3756 "11110111110000\n"
3757 "1101\n"
3758 "1000111111\n"
3759 "10\n"
3760 "11000010001111101\n"
3761 "100000011010001\n"
3762 "100\n"
3763 "11\n"
3764 "100\n"
3765 "110111\n"
3766 "1101001110\n"
3767 "10000100010111\n"
3768 "101\n"
3769 "10000010100000000\n"
3770 "111101000101001\n"
3771 "101\n"
3772 "11010111\n"
3773 "110110\n"
3774 "10101111\n"
3775 "10110110010111001\n"
3776 "100001101111111\n"
3777 "1111100001\n"
3778 "1101101101110101\n"
3779 "10010011000011\n"
3780 "1100010011010\n"
3781 "1110101011\n"
3782 "1011110000100010\n"
3783 "100\n"
3784 "10000111000011\n"
3785 "1110100010\n"
3786 "100\n"
3787 "1001\n"
3788 "1000010011011\n"
3789 "1001110101\n"
3790 "111\n"
3791 "10110011101100001\n"
3792 "1010010010\n"
3793 "1010100\n"
3794 "101\n"
3795 "101010\n"
3796 "1000010\n"
3797 "110\n"
3798 "1000000\n"
3799 "1011000010101101\n"
3800 "100100010000110\n"
3801 "10000100001100000\n"
3802 "1111\n"
3803 "1101\n"
3804 "100\n"
3805 "10101101100111000\n"
3806 "1100001\n"
3807 "10010000101110\n"
3808 "101\n"
3809 "1001011\n"
3810 "1011100101100\n"
3811 "110110100101110\n"
3812 "1010111010\n"
3813 "111010111\n"
3814 "10110\n"
3815 "110\n"
3816 "1101110100100011\n"
3817 "10001000000010\n"
3818 "1100011111\n"
3819 "1000110\n"
3820 "10111011110100001\n"
3821 "1000001101\n"
3822 "10011101000\n"
3823 "110100100111011\n"
3824 "11100101\n"
3825 "11100100\n"
3826 "1\n"
3827 "101\n"
3828 "1000001011\n"
3829 "100100101\n"
3830 "100011111001\n"
3831 "10011010\n"
3832 "100011110\n"
3833 "110101101011111\n"
3834 "1001000111\n"
3835 "11011111\n"
3836 "1001\n"
3837 "111111110\n"
3838 "1100001110111110\n"
3839 "101\n",
3840 ans);
3841 }

引用了 main().