全部评论
#include <iostream> #include <vector> using namespace std; int main(int argc, char* argv[]) { int val; while(cin >> val) { int count = 0, first = -1; vector<int> bits(32,0); for(int i = 0; i < 32; i++) { if((val & (1 << i)) > 0) { bits[i] = 1; } } for(int i = 0; i < 30; i++) { if((bits[i] == 1) && (bits[i+1] == 0) && (bits[i+2] == 1)) { if(first == -1) { first = i; } count++; } } cout << count << ' ' << first << endl; } return 0; }
python bin()直接转换 然后位置是tm的从右边开始算的,,,,,,,,,,
楼主,可以分享下8.14的笔试题吗😊如果记得的话
#include <algorithm>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
string bin2(int n) {
string str="";
while (n!=0) {
str = to_string(n % 2) + str;
n = n/ 2;
}
return str;
}
void fun(string a)
{
int count = 0;
int begin = -1;
while ((begin = a.find("101", begin + 1)) != string::npos)
{
count++;
}
cout << count << " ";
cout << a.find_first_of("101") << endl;
}
int main()
{
int n;
string a;
while (cin >> n) {
a = bin2(n);
reverse(a.begin(), a.end());
fun(a);
}
}
楼主问一下华为笔试可以使用本地编译器吗
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt();
String str = Integer.toBinaryString(m);
StringBuffer sb = new StringBuffer(str);
sb.reverse();
int n = sb.indexOf("101");
int count = 0;
for (int i=0;i<sb.length()-2;i++) {
StringBuffer sb1 = new StringBuffer();
for (int j=i;j<i+3;j++) {
sb1.append(sb.charAt(j));
}
String str1 = sb1.toString();
int num = Integer.valueOf(str1);
if (num == 101) {
count++;
}
}
System.out.println(count+" "+n);
}
}
s = "1010101" t = "101" count ,idx = 0,-1 if len(s)<3: print(0,-1) else: for i in range(len(s)-2): if s[i:i+3] =="101": count +=1 idx = i+2 print(count,idx)
import java.util.Scanner;
public class Test004 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
int index = -1;
int number = 0;
int num = scanner.nextInt();
String numString = Integer.toBinaryString(num);
char [] array = numString.toCharArray();
if(array.length < 3)
{
System.out.println(number+" "+ index);
return;
}
for(int i = array.length -1; i >= 2;i--)
{
if(array[i] == '1' && array[i-1] == '0' && array[i-2] == '1')
{
if(number == 0)
{
index = i;
}
number++;
}
}
if(number == 0)
{
System.out.println(number+" "+ index);
}
else
{
System.out.println(number+" "+ (array.length - 1 - index));
}
}
}
c++ bitset<> reverse to_string find 遍历一遍 负数补码补码补码呜呜呜
按位与 然后移位啊😥
😪转成二进制str,然后遍历过的 极其丑陋 同求思路
相关推荐
点赞 评论 收藏
分享
04-15 23:42
中山大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享