少年宫新近邮购了小机器人配件,共有3类,其中, A类含有:8个轮子,1个传感器 B类含有:6个轮子,3个传感器 C类含有:4个轮子,4个传感器
他们一共订购了100套机器人,收到了轮子600个,传感器280个。根据这些信息请你计算:B类型机器人订购了多少个?
请直接提交该整数,不要填写任何多余内容。
#include <iostream>
using namespace std;
int main()
{
int a,b,c,n=0;
// 定义变量a、b、c和n,用于存储数对中的两个数和结果
// 初始化n为0,表示未找到符合条件的数对
for(a=0; a<=75; a++)
{
for(b=0; b<=93; b++)
{
// 定义变量c,用于存储两个数之差
c=100-a-b;
// 判断两个条件是否成立
if((8*a+6*b+4*c==600)&&(a+3*b+4*c==280))
{
// 输出符合条件的数对中的较小的数
cout<<b<<endl;
// 标记n为1,表示已找到符合条件的数对
n=1;
}
if(n==1)
break;
}
// 如果n为1,则跳出循环,表示已找到符合条件的数对
if(n==1)
break;
}
// 返回0,表示程序正常结束
return 0;
}
运行结果 如下:
所谓回文数就是左右对称的数字,比如:
585,5885,123321…
当然,单个的数字也可以算作是对称的。
小明发现了一种生成回文数的方法:
比如,取数字19,把它与自己的翻转数相加:
19 + 91 = 110,如果不是回文数,就再进行这个过程:
110 + 011 = 121 这次是回文数了。
200以内的数字中,绝大多数都可以在30步以内变成回文数,只有一个数字很特殊,就算迭代了1000次,它还是顽固地拒绝回文!
请你提交该顽固数字,不要填写任何多余的内容。
#include<stdio.h>
/*
* 这段代码定义了一个名为 fan 的函数,用于计算一个 n 位数的阶乘。
* 函数的输入参数是一个 long long 类型的 n,表示需要计算阶乘的数字。
* 函数的返回值是一个 long long 类型的数字,表示计算得到的阶乘。
*/
long long fan(long long n)
{
//初始化一个 long long 类型的变量 sum,用于存储计算得到的阶乘。
long long sum = 0;
/*
* 使用一个 while 循环,当 n 不为 0 时,执行以下操作:
* 1. 计算 n 的个位数 t,并将其存储在 int 类型的变量 t 中。
* 2. 将 t 乘以 10,并将其加到 sum 中。
* 3. 将 n 除以 10,并将商存储回 n。
*/
while(n)
{
int t = n % 10;
sum = sum * 10 + t;
n = n/10;
}
//返回计算得到的阶乘 sum。
return sum;
}
/*
* 调用 fan 函数并计算 1 到 199 的阶乘。
* 首先定义一个 long long 类型的变量 n,用于存储需要计算阶乘的数字。
* 然后使用一个 for 循环,从 1 到 199 遍历所有数字。
* 在循环内部,定义一个 int 类型的变量 j,用于存储循环的次数。
* 使用另一个 for 循环,从 0 到 29 遍历所有可能的阶乘。
* 如果 fan 函数计算得到的阶乘等于当前数字 n,则将 n 加回 fan 函数的输入,并跳出循环。
* 如果循环次数 j 大于等于 30,则输出当前数字 i。
*/
int main()
{
long long n;
int i,j;
for(i=1;i<200;i++)
{
n = i;
for(j=0;j<30;j++)
{
if(n != fan(n))
{
n += fan(n);
}
else
break;
}
if(j >= 30)
printf("%d\n",i);
}
return 0;
}
运行结果如下:
填空内容为: s = pr(i+1, 2*(n-i)-1) + "\n";
从x星截获一份电码,是一些数字,如下:
13
1113
3113
132113
1113122113
......
YY博士经彻夜研究,发现了规律:
第一行的数字随便是什么,以后每一行都是对上一行“读出来”
比如第2行,是对第1行的描述,意思是:1个1,1个3,所以是:1113第3行,意思是:3个1.1个3,所以是:3113
请你编写一个程序,可以从初始数字开始,连续进行这样的变换。数据格式:
第一行输入一个数字组成的串,不超过100位
第二行,一个数字m,表示需要你连续变换多少次,n不超过20
输出一个串,表示最后一次变换完的结果。例如:用户输出:7
则程序应该输出:13211321322115
资源约定:
峰值内存消耗(含虚拟机)<512M CPU消耗<1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入.”的多余内容。
#include <stdio.h>
#include <string.h>
char a[10001],b[10001],c[10001];
int n,cou=0,cou1=0,s=0,j;
char flag;
int main()
{
scanf("%s%d",&a,&n);
int i;
while(n--)
{
flag=a[0];
cou=0;
for(i=0;i<=strlen(a);i++)
{
if(a[i]==flag)
{
cou++;
}
else {
s=0;
strcpy(c,"");
while(cou!=0)
{
c[s]='0'+cou%10;
s++;
cou=cou/10;
}
for(j=s-1;j>=0;j--)
{
b[cou1]=c[j];
cou1++;
}
b[cou1]=flag;
cou1++;
flag=a[i];
cou=1;
}
}
strcpy(a,b);
strcpy(b,"");
cou1=0;
}
printf("%s",a);
return 0;
}
?
福尔摩斯从X星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为8的密码列表。
福尔摩斯发现,这些密码是被打
程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性
数据格式:
输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024
紧接看一行是一个整数1,表示以下有n行密码,1-n<=1000紧接着是n行字符串,都是小写字母组成,长度都为8
要求输出:
一个整数,表示每行密码的所有排列在s中匹配次数的总和。
例如:
用户输入:
abbbbaabbcccc
2
aaaabbbb
abcabccc
则程序应该输出:4
这是因为:第一个密码匹配了3次,第二个密码匹配了1次,一共4次。
资源约定:
峰值内存消耗(含虚拟机)<512M CPU消耗<5000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。注意:主类的名字必须是:Main,否则按无效代码处理。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
char s[1100000];
int a[1100000];
int flag1[123];
int flag2[123];
int main()
{
memset(s,0,sizeof(s));
int i,j,k,r;
int sum=0;
cin>>s;
i=0;
while(s[i]!='\0')
{
a[i]=(int)s[i];//将字母转化为int类型的数字,a-z为97-122
i++;
}
int len=i;
int n;
cin>>n;
char b[9];
for(i=0;i<n;i++)
{
cin>>b;
for(j=0;j<8;j++)
flag1[(int)b[j]]++;//统计密码中各字符的个数
for(k=0;k<len-7;k++)
{
for(r=k;r<k+8;r++)
flag2[a[r]]++;//统计主串中长度为8的子串中各字符的个数
for(r=97;r<123;r++)
if(flag1[r]!=flag2[r])//判断,密码与子串的各字符的个数是否相等
break;
if(r==123)
sum++;
memset(flag2,0,sizeof(flag2));
}
memset(flag1,0,sizeof(flag1));
}
cout<<sum;
return 0;
}
?
隔行变色
Excel 表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式.小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,..现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行.
请你直接提交这个整数,千万不要填写任何多余的内容。
#include<stdio.h>
int main()
{
int n=0,i;
for(i=21;i<51;i++){
if(i%2!=0){
n++;
}
}
printf("%d",n);
return 0;
}
运行结果 如下:?
有些数字的立方的末尾正好是该数字本身,比如:1,4,5,6,9,24,25...
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。
请提交该整数,不要填写任何多余的内容.
#include<stdio.h>
int main()
{
long long n,s=0;
for(n=1;n<10000;n++)
{
if(n<10){
if(n*n*n%10==n) s++;
}else if(n<100){
if(n*n*n%100==n) s++;
}else if(n<1000){
if(n*n*n%1000==n) s++;
}else if(n<10000){
if(n*n*n%10000==n) s++;
}
}
printf("%d",s);
return 0;
}
运行结果 如下:?
/*
* 这段C语言代码实现了一个求解特定数字组合的函数。
* 输入:一个整数n,表示数字的范围(1-9)。
* 输出:如果存在满足条件的数字组合,输出四个数字(a, b, c, d)
*/
#include<stdio.h>
int main()
{
int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0; //dcef + 1abc = 1aecg
for(d = 0; d <= 9; d++)
{
if(d == 1)
d++;
for(c = 0; c <= 9; c++)
{
while(c == d || c == 1)
{
c++;
}
if(c == 10)
break;
for(e = 0; e <= 9; e++)
{
while(e == c || e == d || e == 1)
{
e++;
}
if(e == 10)
break;
for(f = 0; f <= 9; f++)
{
while(f == 1 || f == c || f == d || f == e)
{
f++;
}
if(f == 10)
break;
for(a = 0; a <= 9; a++)
{
while(a == 1 || a == c || a == d || a == e || a == f)
{
a++;
}
if(a == 10)
break;
for(b = 0; b <= 9; b++)
{
while(b == 1 || b == c || b == d || b == e || b == f || b == a)
{
b++;
}
if(b == 10)
break;
for(g = 0; g <= 9; g++)
{
while(g == 1 || g == c || g == d || g == e || g == f || g == a || g == b)
{
g++;
}
if(g == 10)
break;
if(d * 1000 + c * 100 + e * 10 + f + 1000 + a * 100 + b * 10 + c == 10000 + a * 1000 + e * 100 + c * 10 + g)
{
printf("%d%d%d%d\n",1,a,b,c);
printf("%d %d %d %d + 1 %d %d %d = 1 %d %d %d %d \n",d,c,e,f,a,b,c,a,e,c,g);
}
}
}
}
}
}
}
}
return 0;
}
C语言代码的运行逻辑如下:
//1. 首先,引入了<stdio.h>头文件,用于输入输出。
//2. 定义了一个main()函数,这是C语言程序的入口。
//3. 定义了6个整型变量a、b、c、d、e、f 和g,用于存储计算结果。
//4. 进入一个for循环,循环变量d的取值范围是0到9。
//5. 在循环内部,首先判断d是否等于1,如果是,则d自增1。
//6. 然后进入一个while循环,判断c是否等于d或1,如果是,则c自增1。如果c等于10,则跳出循环。
//7. 接下来进入另一个while循环,判断e是否等于c、d、1、e、f,如果是,则e自增1。如果e等于10,则跳出循环。
//8. 进入另一个while循环,判断f是否等于1、c、d、e、f,如果是,则f自增1。如果f等于10,则跳出循环。
//9. 接下来进入一个for循环,循环变量a的取值范围是0到9。
//10. 在循环内部,首先判断a是否等于1、c、d、e、f、1,如果是,则a自增1。如果a等于10,则跳出循环。
//11. 接下来进入另一个for循环,循环变量b的取值范围是0到9。
//12. 在循环内部,首先判断b是否等于1、c、d、e、f、a,如果是,则b自增1。如果b等于10,则跳出循环。
//13. 接下来进入另一个while循环,判断g是否等于1、c、d、e、f、a、b,如果是,则g自增1。如果g等于10,则跳出循环。
//14. 进入一个if语句,判断d * 1000 + c * 100 + e * 10 + f + 1000 + a * 100 + b * 10 + c是否等于10000 + a * 1000 + e * 100 + c * 10 + g。如果是,则输出结果,并将a、b、c的值分别打印出来。
//15. 最后,main()函数返回0,表示程序运行成功。
运行结果 如下:?
填空内容为: (width-strlen(s)-2)/2, \" \", buf, (width-strlen(s)-2)/2, \" \")?