编程课有点摆了,现在急需完成,求帮助一下下,可以有偿,谢谢啦~
一共4道题呀
又是一次n道题,怎么个有偿法
第一个:
#include <stdio.h>
int rev(int n)
{
int m=0;
while(n>0)
{
m = m*10 + n%10;
n/=10;
}
return m;
}
int main()
{
int n,m,i;
scanf("%d",&n);
for(i=0;i<7;i++)
{
m=rev(n);
printf("%d+%d=%d\n",n,m,n+m);
if(rev(m+n)==m+n)
break;
n = m+n;
}
if(i==7)
printf("N");
else
printf("Y");
return 0;
}
第二个:
#include <stdio.h>
int main()
{
char s[256] = {0};
int n;
scanf("%d",&n);
getchar();
for(int k=0;k<n;k++)
{
int a[26] = {0};
scanf("%[^\n]", s);
getchar();
int i=0,max= 0;
while(s[i] != '\0')
{
if(s[i] >='a' && s[i]<='z')
a[s[i]-'a']++;
else if(s[i] >='A' && s[i] <='Z')
a[s[i]-'A']++;
i++;
}
for(i=0;i<26;i++)
if(a[i] > max)
max = a[i];
for(i=0;i<26;i++)
if(a[i] == max)
printf("%c",i+'a');
printf("\n");
}
return 0;
}
第四个:
#include <stdio.h>
int isprime(int n)
{
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=3;i<=n/2;i+=2)
{
if(isprime(i) && isprime(n-i))
printf("%d %d\n",i,n-i);
}
return 0;
}
4题写完了,看一下
实在感谢两位大佬,考虑到只能采纳一个人,要不你们都发个付款吗吧
emmm现在都解决了吗
第1题:
#include <iostream>
int method1(int num)
{
int reversion = 0;
while (num)
{
reversion = reversion * 10 + num % 10;
num /= 10;
}
return reversion;
}
/** 判断回数 */
bool method2(int num)
{
return num == method1(num);
}
int main(void)
{
int num, i = 0, reversion, result;
std::cin >> num;
// 最多循环7次
while (i++ < 7)
{
reversion = method1(num);
result = num + reversion; // 结果和
std::cout << num << " + " << reversion << " = " << result << std::endl;
if (method2(result))
break;
num = result;
}
std::cout << (i < 7 ? 'Y' : 'N') << std::endl;
return 0;
}
第2题:
#include <iostream>
#include <cctype>
int main(void)
{
int n, max = 0, index, j;
int letters[26] = { 0 }; // 表示26个字母的整型数组
char buff[255] = {'\0'}; // 接收每行输入的字符串
std::cin >> n;
getchar(); // 吸收换行符
for (int i = 0; i < n; i++)
{
j = 0;
while ((buff[j++] = getchar()) != '\n'); // 获取字符串
j = 0; // 重置 j
while (buff[j] != '\n') // 遍历字符串
{
// 如果字符j是字母
if (isalpha(buff[j]))
{
// 如果是大写字母,转换为小写
if (isupper(buff[j]))
buff[j] = tolower(buff[j]);
// 获取下标
index = (int)(buff[j] - 'a');
letters[index]++; // 下标对应的数组位加1
// 如果数组位大于max, max 等于数组位
if (letters[index] > max) max = letters[index];
}
j++;
}
}
// 遍历数组
for (int i = 0; i < 26; i++)
{
// 如果 letters[i] 的大小等于 max,输出对应的字符
if (letters[i] == max)
std::cout << (char)(i + 'a');
}
std::cout << std::endl;
return 0;
}
// Institue of Network Computing and Information System
第3题:
#include <iostream>
#include <vector>
using namespace std;
/** 返回fn(n)的值 */
unsigned long long fn(int n)
{
unsigned long long f1 = 7, f2 = 11, result = 0;
if (n == 0) return f1;
if (n == 1) return f2;
for (int i = 2; i <= n; i++)
{
result = f1 + f2;
f1 = f2;
f2 = result;
}
return result;
}
int main(void)
{
vector<int> vec; // 创建数组列表(动态长度)
int n;
do {
cin >> n;
if (n == 1000001) break;
vec.push_back(n); // 数组添加元素
} while (true);
// 遍历数组
for (int i = 0; i < vec.size(); i++)
{
cout << (vec[i] != 0 && fn(vec[i]) % 3ULL == 0 ? "yes" : "no") << endl;
}
return 0;
}
第4题:
#include <iostream>
/** 如果是素数,返回 true */
bool isPrime(int n)
{
int squareRoot = 0;
while (squareRoot * squareRoot < n) squareRoot++; // 获取小于 n 的平方根
for (int i = 2; i <= squareRoot; i++)
{
// 如果 i 不等于 2 且能整除 n,n 是素数
if (i != 2 && n % i == 0)
return false;
}
return true;
}
/** 返回素数数组 */
int **getArray(int m, int *j)
{
int **array;
array = new int*[100];
for (int i = 0; i < 100; i++) // 数组动态分配空间
array[i] = new int[2];
// 两个素数小于m
for (int i = 1; i < m / 2; i++)
{
// 如果 i 和 m - i 均为素数
if (isPrime(i) && isPrime(m - i) && (i + (m - i) == m))
{
// 且均为奇数
if (i % 2 != 0 && (m - i) % 2 != 0)
{
// 赋值
array[*j][0] = i;
array[*j][1] = m - i;
(*j)++;
}
}
}
return array;
}
int main(void)
{
int m, j = 0;
std::cin >> m;
// 如果范围越界,中断程序
if (m < 6 || m > 10000) {
fprintf_s(stderr, "Error m: %d\n", m);
exit(EXIT_FAILURE);
}
int** array = getArray(m, &j);
for (int i = 0; i < j; i++) // 输入素数数组
{
std::cout << array[i][0] << " " << array[i][1] << std::endl;
}
return 0;
}