1.
题目说明
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
接口说明
原型
void GetResult(int Num, char * pResult);
输入参数:
int Num:输入的正整数N
输出参数:
int * pResult:指向存放蛇形矩阵的字符串指针
指针指向的内存区域保证有效
返回值:
void
#include <iostream>
using namespace std;
int main()
{
int sum = 1;
int Row = 0;
cin >> Row;
for (int i = 0; i < Row;i++)
{
sum += i;
cout << sum << " ";
int sum_j = sum;
for (int j = 2 + i; j <=Row;j++)
{
sum_j += j;
if (j!=Row)
{
cout << sum_j << " ";
}
else
{
cout << sum_j;
}
}
cout << endl;
}
system("pause");
return 0;
}
2.
描述:给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度 总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
知识点: 字符串
运行时间限制: 0M
内存限制: 0
输入: 整数N,后续N个名字
N个字符串,每个表示一个名字
输出 :每个名称可能的最大漂亮程度
样例输入: 2 zhangsan lisi
样例输出: 192 101
#include <iostream>
#include <string>
#include <vector>
#include<set>
#include <strstream>
using namespace std;
multiset<int> frequentOfletter(string name)
{
set<char>diffLetter;
multiset<int>frequency;
for (int i = 0; i < name.size();i++)
{
diffLetter.insert(name.at(i));
}
set<char>::iterator m = diffLetter.begin();
while (m!=diffLetter.end())
{
int count = 0;
for (int i = 0; i < name.size(); i++)
{
if (name.at(i)==*m)
{
count++;
}
}
frequency.insert(count);
m++;
}
return frequency;
}
int maxofbeauty(multiset<int>fOf)
{
int max = 0;
multiset<int>::reverse_iterator m = fOf.rbegin();
int i = 0;
int k = *m;
while (m!=fOf.rend())
{
max += (26 - i)*(*m);
m++;
i++;
}
return max;
}
void main()
{
int NumOfName = 0;
cin >> NumOfName;
vector<string>Name;
for (int i = 0; i < NumOfName; i++)
{
string Nameof;
cin >> Nameof;
Name.push_back(Nameof);
}
for (int i = 0; i < Name.size();i++)
{
cout << "max : " << maxofbeauty(frequentOfletter(Name.at(i))) << endl;
}
system("pause");
}
3.
描述
输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37…70,71,72,73…)的个数
知识点 循环
运行时间限制 0M
内存限制 0
输入
一个正整数N。(N不大于30000)
输出
不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.
样例输入 20
样例输出 3
代码:
#include <iostream>
using namespace std;
bool Isinclude7(int sample)
{
bool yesorno = false;
while (sample > 0)
{
int target = sample % 10;
int continu = sample / 10;
sample = continu;
if (target == 7 || continu == 7)
{
yesorno = true;
break;
}
}
return yesorno;
}
void main()
{
int referenceof7 = 0;
int range = 0;
cin >> range;
for (int i = 0; i <= range;i++)
{
if (i%7==0&&i!=0)
{
referenceof7++;
}
else if (Isinclude7(i))
{
referenceof7++;
}
}
cout << referenceof7 << endl;
system("pause");
}