已知3个矩形的大小依次是axb,a2xb2和agxb3。用这3个矩形能拼出的所有多边形中,边数最少可以是多少?
在解决此类问题的时候,我才用最大边化。即首先找出3个矩阵整在一起的情况下边数最大为多少.如果有边相等的,那么对应的变数就会与最大值差两个,否则不差,仍然是两个.
#include
using namespace std;
int main()
{
cout << "请输入数据的组数:" << endl;
int n, a[100],m=0;
cin >> n;
for (int i = 0; i < n; i++) //几组数据
{
cout << "请输入第" << i + 1 << "组数据:" << endl;
for (int j = i*6; j < 6*(i+1); j++) //每组数据多少
{
cin >> a[j];
}
}
for (int i = 0; i < n; i++) //一组数据作比较
{
for (int j = i * 6; j < 6 * (i + 1); j++) // 一对一对应,
{
for (int k = j; k < 6 * (i + 1)-1; k++)
{
if (a[j] == a[k + 1])
{
m++;
}
}
}
cout << 8 - (m * 2) << endl;
m = 0;
}
}
C++有一个皮球从a厘米高度开始下落,每次落地后反弹回原来高度的一半。经过多次反弹后,如果皮球是从1厘米的高度下落,那么皮球触地后就不再反弹了。问皮球一共经过了多少厘米
输入格式
一个整数a。
输出格式
一个整数。
输入/输出例子1输入:10 输出:26 样例解释 10+5+5+2+2+1+1=26
本题问共经历了多少厘米,我们可以想象一下,如果一个球从10cm的高度落下,那么经过第一次弹跳后落地,那么经历了多少cm呢?答案是 10cm(第一次落地)+5cm(第一次弹起)+5cm(第一次谈起落地)。那么第二次弹起落地是多少呢?2.5cm+2.5cm.所以我们返现规律,每次落地弹起的高度是:(落地时高度)/2*2;
#include
using namespace std;
#include
#include
int main()
{
int a,m=0;
cout << "请输入从多cm" << endl;
cin >> a;
int sum = a,sum1=0;
for (int i = 0; i < a; i++)
{
sum /=2;
sum1 += sum*2;
}
cout << "需要" << sum1+a << endl; //为什么要+a? 因为没算第一个洛的位置
}
#include
using namespace std;
int main()
{
int a;
cin>>a;
int sum = a;
while(a > 1)
{
a/=2;
sum += a*2;
}
cout<<sum<<endl;
return 0;
}
删除两个字符串里面的重复项,然后输出删除后的结果:
首先我们先要进行手动输入两个字符串,在这里我们要知道字符串的特性 s3=s3+s1;可以实现字符串的合并.然后设置一个for循环进行一个个判断是否相等,如果不相等的话那么就合并。
#include
using namespace std;
#include
int main()
{
string s1 ;
char s2;
string s3 ;
cout << "请输入原始数据" << endl;
cin >> s1;
cout << "请输入要删除元素:" << endl;
cin >> s2;
for (int i = 0; i < s1.length(); i++)
{
if (s1[i] !=s2) //如果不用strcmp函数,那么就只能一个是string 一个是char型.如果用strcmp,那么两个都需要是char类型的数组
{
s3 = s1[i] + s3;
}
}
cout << "删除后的元素为:" << s3 << endl;
return 0;
}
回文数,就是首尾一一对应相等的数就是回文数
首先我们要设置一个字符串,然后对其进行一个小于n/2的for循环,(因为是俩俩判定)。重要思路是首尾相减如果为0,那么就是回文数.
#include
#include
using namespace std;
int main()
{
int i,n;
string s;
cout<<"请输入你要输入一个三位数数:"<<endl;
cin>>s;
n=s.length();
for(i=0;i<n/2;i++) //因为判断的是一对
{
if(s[i]-s[n-1-i]==NULL) //因为相等所以相减为0;
{
cout<<"YES!"<<endl;
}
else
{
cout<<"NO"<<endl;
}
}
return 0;
}
闰年是能够被四整除且不能被100整除,但能够被400整除的数
我们要知道闰年的条件,闰年是能够被四整除且不能被100整除,但能够被400整除的数
#include
using namespace std;
int main()
{
cout << "请输入您想判断的年份:" << endl;
int year;
cin >> year;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) //能够被整除4,但不能整除一百,但能整除400
{
cout << year << "是闰年" << endl;
}
else
{
cout << year << "不是闰年" << endl;
}
return 0;
}