我知道 HTML 图像的宽度和高度属性可以简单地通过<img src="Debian.jpg" style="height: 120px; width: 130px">.
我正在寻找的是,是否存在一个 CSS 属性,该属性只取一个值,%并根据该百分比缩放原始图像的宽度和高度。例如,如果高度和宽度Debian.jpg是1000x700与我指定50%在CSS属性然后将图像按比例缩小到500x350,因此纵横比被维持。
我很难在单独调整高度和宽度的同时保持图像的纵横比。如果这样的属性不存在,那么有什么方法可以保持纵横比并获得所需的图像尺寸?
所以,Fizz Buzz 是一个非常简单的问题,这个问题有很多解决方案。在最近的一次采访中,面试官让我为 Fizz Buzz 写一个函数,所以我一手想出了以下方法。
void fizz_buzz(int range) {
for(auto i = 1; i < range; ++i) {
if(i % 15 == 0)
cout << "FizzBuzz" << "\n";
else if(i % 3 == 0)
cout << "Fizz" << "\n";
else if(i % 5 == 0)
cout << "Buzz" << "\n";
else
cout << i << "\n";
}
}
Run Code Online (Sandbox Code Playgroud)
然后面试官问我如果我想修改 3 和 7 的 Fizz Buzz 那么在你的代码中多个条件语句将不得不更改。
所以,我写了以下片段:
void fizz_buzz(int range) {
//Notice that we don't need to check for …Run Code Online (Sandbox Code Playgroud) 出于某种目的,我的开关盒中需要一个std:: vector<char>或std:: string。因此,我编写了以下虚拟代码来查看它是否有效:
#include <iostream>
#include <string>
int main() {
int choice = 0;
do {
std:: cout << "Enter Choice" << std::endl;
std:: cin >> choice;
switch(choice) {
case 1:
std::cout << "Hi";
break;
case 2:
std::string str;
std::cin >> str;
break;
case 3: //Compilation error, Cannot jump from switch statement to this case label
std::cout << "World" << std:: endl;
break;
default:
std:: cout << "Whatever" << std:: endl;
}
} while(choice != 5); …Run Code Online (Sandbox Code Playgroud) 我正在解决一个问题,我必须将给定的前 N 个自然数转换为二进制数。我正在使用bitset和.to_string()。但是,在数字转换为二进制后,它有一些前导零显然等于给定位集的大小。任务是删除它。我已经做到了,std::string:: erase()但我认为这样做不是一个好方法。如何优化这部分代码?
#include <iostream>
#include <bitset>
#include <string>
int main()
{
int T;
std:: cin >> T;
while(T--) {
int n;
std:: cin >> n;
for(auto i = 1; i <= n; ++i) {
std::string binary = std::bitset<32>(i).to_string(); //to binary
//This part here
int j = 0;
while(binary[j] == '0') {
++j;
}
binary.erase(0, j);
//Till here
std::cout<<binary<<" ";
}
std:: cout << std:: endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我是线程新手,我编写了一个简单的线程程序来看看它在 C++ 中如何工作。
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
using namespace std::chrono;
void funcSum(long long int start, long long end)
{
long long int sum = 0;
for(auto i = start; i <= end; ++i)
{
sum += i;
}
cout << sum;
}
int main()
{
auto startTime = high_resolution_clock::now();
long long int start = 0, end = 90000;
thread t1(funcSum, start, end);
t1.join();
funcSum(start, end);
auto stopTime = high_resolution_clock::now();
auto duration = duration_cast<seconds>(startTime - stopTime); …Run Code Online (Sandbox Code Playgroud) 我正在对我的函数的以下问题进行压力测试myFunc()。
有一座石桥连接两座城市。从一个城市开始的第一块石头上刻有 1,最后一块石头在另一个城市一侧。除了最后一块石头上可能刻有一个或两个数字,这取决于 N 的值,每个后续的石头上都有两个连续的数字。 石头可以排列为 1, (2, 3), (4, 5), ( 6, 7) ... N。
给你一个数字 N,代表最后一块石头上的最后一个数字;和一个数字 X。任务是找到从第一个城市一侧或第二个城市一侧到达刻有 X 的石头所需的最少跳跃次数。注意:在第一块石头上跳跃将计为 0 次跳跃。
示例:输入:2 10 3 5 1
输出:1 0
说明:Testcase 1: Stone Alignment for N = 10 如下: 1, (2, 3), (4, 5), (6, 7), (8, 9), 10 要跳到X = 3,你只需要从第一城一侧跳一次(因为第一次跳石不计算在内),从第二侧跳4次。所以 1 和 4 的最小值是 1。
测试用例 2:N = 5 的石头对齐如下: 1, (2, 3), (4, 5) 要在 X = 1 上跳跃,您只需要从 First 开始零次跳跃(因为第一次石头跳跃不会被计算在内)城边,从第二城边跳2次。所以 0 和 2 的最小值是 …
从网上看,我了解到lower_bound()C++中的方法是用来返回一个迭代器,该迭代器指向范围[first, last)中的第一个元素,该元素的值不小于value。这意味着该函数返回下一个刚好大于该数字的最小数字的索引。
所以,对于下面给定的代码,我理解输出是 3。但是,因为有 6 的重复。如何使用lower_bound(). 我可以binary_search()为此实现我自己的,但我想知道如何通过lower_bound().
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main ()
{
int array[] = {5,6,7,7,6,5,5,6};
vector<int> v(array,array+8); // 5 6 7 7 6 5 5 6
sort (v.begin(), v.end()); // 5 5 5 6 6 6 7 7
vector<int>::iterator lower,upper;
lower = lower_bound (v.begin(), v.end(), 6);
upper = upper_bound (v.begin(), v.end(), 6);
cout << "lower_bound for 6 at position " << (lower- v.begin()) …Run Code Online (Sandbox Code Playgroud) 我知道该sizeof运算符返回 C/C++ 中任何给定类型的大小。在 C 风格数组中,数组的名称本身就是一个指向数组第一个元素的指针。例如,在 中int arr[2] = {2, 3},*arr将产生2。那为什么sizeof操作符不返回指针变量的大小,而是返回数组在内存中占用的总大小。
看这段代码:
#include <iostream>
using namespace std;
int main()
{
int arr[10];
cout << sizeof (arr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:40字节(给定int需要4字节)
在这段代码中我想问的是,即使arr只是一个指针,那么sizeof如何返回这个数组占用的整个大小?
我自己写了一个sizeof来理解它:
#include <iostream>
using namespace std;
template <typename T>
size_t my_sizeOf(T var)
{
return (char *) (&var + 1) - (char *) (&var);
}
int main()
{
int arr[10];
cout << my_sizeOf(arr);
return 0; …Run Code Online (Sandbox Code Playgroud)