NC219038. 消减整数
描述
输入描述
第一行给出一个正整数,
接下来T行每行一个
输出描述
每行一个正整数代表最少的次数
示例1
输入:
3 3 5 7
输出:
2 3 3
C(clang11) 解法, 执行用时: 2ms, 内存消耗: 232K, 提交时间: 2021-03-21 19:51:18
#include<stdio.h> int main() { int t; scanf("%d",&t); while(t--) { int h,a=0; scanf("%d",&h); while(h) { if(h&1)h>>=1; else h--; a++; } printf("%d\n",a); } }
Python3 解法, 执行用时: 58ms, 内存消耗: 4564K, 提交时间: 2022-03-23 13:57:26
t=int(input()) for i in range(t): n=int(input()) j,res=1,0 while n>0: n-=j res+=1 if n%(2*j)==0 and n>=(2*j): j*=2 print(res)
C++(clang++11) 解法, 执行用时: 6ms, 内存消耗: 360K, 提交时间: 2021-03-22 13:57:53
#include<iostream> int main(){int t,h;std::cin>>t;while(t--){int a=0;std::cin>>h;while(h){h&1?h/=2:h--;a++;}std::cout<<a<<'\n';}}