标签:定义变量 一次循环 上线 数列 描述 cas 相同 += 最小
这几天都没有新的课程,都在讲解不同的题目以及重要的知识点,甚至昨天进行了一波残酷的测试,题目真的事不动声色,
动静则退,令人头皮发麻的题目,真的恐怖,差点掉坑
下面是这几天的练习题目
/*1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。
完成*/
/*int x, a, b, c, d, e;//
cin >> x;//输入一个数
if (x > 0 && x < 10)//如果是一位数,直接输出
cout << x << endl;
else if (x >= 10 && x < 100)//如果是两位数,求出个位十位,然后输出
{
a = x / 10;
b = x % 10;
cout << a + 10 * b << endl;
}
else if (x >= 100 && x < 1000)//如果是三位数,求出个十百位,然后输出
{
a = x / 100;
b = x / 10 %10;
c = x % 10;
cout << (a + 10 * b + 100 * c) << endl;
}
else if (x >= 1000 && x < 10000)//如果是四位数,求出个十百千位,然后输出
{
a = x / 1000;
b = x / 100 % 10;
c = x / 10 % 10;
d = x % 10;
cout << (a + 10 * b + 100 * c + 1000 * d) << endl;
}
else if (x >= 10000 && x < 100000)//如果是五位数,求出个十百千万位,然后输出
{
a = x / 10000;
b = x / 1000 % 10;
c = x / 100 % 10;
d = x / 10 % 10;
e = x % 10;
cout << (a + 10 * b + 100 * c + 1000 * d+10000*e) << endl;
}*/
//2.计算1 + 2 + 3… + n的值,n是从键盘输入的自然数。
/*int n,s=0;
cin >> n;
for (int i = 1; i <= n; i++)
{
s += i;//将i的值累加起来
}
cout << s << endl;*/
//5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,
//每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。
/*int x5, x2, x1, x;
for (x5 = 1; x5 <= 9; x5++)//50元的可能取法
{
for (x2 = 1; x2 <= 21; x2++)//20元的可能取法
{
for (x1 = 1; x1 <= 42; x1++)//10元的可能取法
{
for (x = 1; x <= 84; x++)//5元的可能取法
{
if (50*x5 + 20*x2 + 10*x1 +5* x == 500)//判断总的是否等于500
cout << x5 << " " << x2 << " " << x1 << " " << x << endl;
}
}
}
}*/
//6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,
//n从键盘输入。例如若n为1000时,函数值应为:s = 153.909064。
/*int n,t=0;
double s;
cin >> n;
for (int i = 21; i < =n; i++)//最小的值为3*7,一直循环到n
{
if (i % 3 == 0 && i % 7 == 0)
{
t += i;
}
}
s = sqrt(t);
printf("%.6lf\n", s);*/
/*7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,
只记下车号的一些特征。甲说:牌照的前两位数字是相同的;
乙说:牌照的后两位数字是相同的,但与前两位不同;
丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。*/
/*int x, y,k,i;//x和y分别代表前两个和后两个的值
for (x = 0; x < 10; x++)
{
for (y = 0; y < 10; y++)
{
if (x != y)//与前两位不同
{
k = x * 1000 + x * 100 + 10 * y + y;//求出总的可能的数出来
for (i = 3; i*i <= k; i++)//最小的数为0011,最大为k
{
//判断是否满足
if (i*i == k)
{
cout << k << endl;
}
}
}
}
}*/
//8.输入1~10之间的一个数字,输出它对应的英文单词。
/*int x;
cin >> x;//输入x的值,判断x
switch (x)
{
case 1:
cout << "one" << endl;
break;
case 2:
cout << "two" << endl;
break;
case 3:
cout << "three" << endl;
break;
case 4:
cout << "four" << endl;
break;
case 5:
cout << "five" << endl;
break;
case 6:
cout << "six" << endl;
break;
case 7:
cout << "seven" << endl;
break;
case 8:
cout << "eight" << endl;
break;
case 9:
cout << "nine" << endl;
break;
case 10:
cout << "ten" << endl;
break;
}*/
//9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?
/*int x,y,s;
for (x = 1; x <= 9; x++)//百位
{
for (y = 0; y <= 9; y++)//十位
{
s = x * 100 + y * 10 + 6;//个位数已经固定为6
if (s % 3 == 0 && s % 5 != 0)
cout << s << ‘\t‘;
}
}
cout << endl;*/
//10.用自然语言描述程序逻辑如下,试写程序。
//① 设置环境;
//② 定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;
//③ i = 1;
//④ 如果i≤100,则转⑤,否则转⑧;
//⑤ 令s = 0,求前i个自然数之和,并放于变量s之中;
//⑥ sum = sum + s;
//⑦ i增加1,转④;
//⑧输出和sum,结束。
/* int i, j, s,sum=0;
for (i = 1; i <= 100; i++)
{
s = 0;
s += i;
sum = sum + s;
}
cout << sum << endl;
*/
//11.用自然语言描述的程序逻辑为:
//① 设置环境;
//② 定义变量i、flag和password,并令flag = 0,i = 0;
//③ 用户回答口令,将其赋于password变量;
//④ 口令正确?如果是,则flag = 1,转⑥。否则转⑤;
//⑤ 回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥;
//⑥ 根据flag之值输出相应信息。
/*int i, flag = 0, password;
for (i = 0; i < 3; i++)
{
cin >> password;
if (password == 100)
{
flag = 1;//flag标记
break;
}
else
continue;
}
if (flag==1)
cout << "回答正确" << endl;*/
//12.用自然语言描述的程序逻辑如下:
//① 设置环境;
//② 定义变量digit、x、y分别表示原始数的个位、原始数数和逆数;
//③ 输入原始正整数x;
//④ 从x中分解出个位数字digit;
//⑤ 合并个位digit至逆数y中;
//⑥ 原始数x缩小10倍:x = x / 10;
//⑦ 如果x非零,则转④;
//⑧ 输出逆数y,结束
/* int digit, x, y=0;
cin >> x;
while(x)
{
digit = x % 10;
y += digit;
x = x / 10;
}
cout << y << endl;*/
//13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。
/*int a, b, c;
cout << "请输入三角形的三条边" << endl;
cin >> a >> b >> c;
if ((a + b) > c || (a + c)>b || (b + c)>a)//两边大于第三边则为三角形
{
if (a == b && b == c && a == c)//三边相等为等边三角形
{
cout << "三角形为等边三角形" << endl;
}
else if (a*a + b*b == c*c || b*b + c*c == a*a || a*a + c*c == b*b)//勾股定理
{
cout << "三角形为直角三角形" << endl;
}
else if (a == b || a == c || b == c)//两边相等为等腰三角形
{
cout << "三角形为等腰三角形" << endl;
}
else
{
cout << "三角形为任意三角形" << endl;
}
}*/
//14.输入10个数,分别统计其中正数、负数、零的个数。
// int x,a=0,b=0,c=0;//a,b,c分别表示正负零的个数
// for (int i = 0; i < 10; i++)
// {
// cin >> x;
// if (x>0)a++;//统计正数
// else if (x < 0)b++;//统计负数
// else if (x == 0)c++;//统计0的个数
// }
// cout << a << b << c << endl;
//return 0;
//15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)
/*srand(time(NULL));
int i,x,a[100];
for (i = 0; i < 100; i++)
{
a[i] = rand() % 900 + 100;//产生随机数
cout << a[i] << " ";//存入数组a[100]中
}
cout << endl;
for (i = 0; i < 100; i++)
{
if (a[i] % 3 == 0 && a[i] % 5 == 0 && a[i] % 7 == 0)//判断是否满足3、5、7倍数的数
{
cout << a[i] << ‘\t‘;
}
}
cout << endl;*/
//16.用for编程找出100~200中的完全平方数。
/*for (int i = 100; i <= 200; i++)//在100-200中查找
{
for (int j = 10; j <= 14; j++)//开平方在100-200中最小的为10-14
{
if (j*j == i)判断是否相等
cout << i << ‘\t‘;
}
}
cout << endl;*/
//17.从终端输入三个正实数,判断这三个数能否构成直角三角形
/*double a, b, c;
cin >> a >> b >> c;//a,b,c分别代表三角形的三条边
if (a + b > c || a + c > b || b + c > a)
{
if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
cout << "可以构成一个直角三角形" << endl;
else
{
cout << "不能够成一个直角三角形" << endl;
}
}*/
//23.若ax2 + bx + c = 0有实根,则求之。
/*double x1, x2, t, a, b, c;
cin >> a >> b >> c;//输入a,b,c的值
t = b*b - 4 * a*c;
if (t == 0)判断b*b - 4 * a*c,等于0有两个相等的实根,大于0有两个不同的实根;
x1 = x2 = -b / 2 * a;
else if (t > 0)
{
x1 = -b / 2 * a + sqrt(t) / 2 * a;
x2 = -b / 2 * a - sqrt(t) / 2 * a;
}
cout << x1 << ‘\t‘ << x2 << endl;*/
//33.“百钱百鸡”问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?
//int x, y, z;//x代表鸡翁,y代表鸡母,z代表鸡雏
//for (x = 0; x <= 33; x++)//x取得的范围
//{
// for (y = 0; y <= 50; y++)//y取得的范围
// {
// for (z = 0; z <= 300; z++)z取得的范围
// {
// if (x + y + z == 100 && 3 * x + 2 * y + z/ 3 == 100 && z%3==0)//z必须的3的倍数
// cout << x << ‘\t‘ << y << ‘\t‘ << z << endl;
// }
// }
//}
//34.有三个小孩,一个比一个大2岁,已知其年龄之和为39,问这三个小孩各几岁?
/* int a, b, c;//a,b,c分别代表三个小孩的年龄
for (a = 1; a < 20; a++)
{
for (b = 1; b < 20; b++)
{
for (c = 1; c < 20; c++)
{
if ( a==b+2 && a==c+4 && a + b + c == 39)//一个比一个大2岁,年龄之和为39
cout << c << ‘\t‘ << b << ‘\t‘ << a << endl;
}
}
}*/
//36.计算:1 / 2 + 1 / 4 + …… + 1 / n,设n是由键盘输入的正偶数。
/*int n,i;
cin >> n;
double s = 0;
for ( i = 2; i <= n; i =i+2)//正偶数要加2
{
s = s+(double)1/i;//输出结果为double类型
}
cout << s << endl;*/
//37.计算:1 / 1 + 1 / 3 + …… + 1 / n,设n是由键盘输入的正奇数。
/*int n, i;
cin >> n;
double s = 0;
for (i = 1; i <= n; i = i + 2)//初值为1,按奇数递增
{
s = s + 1.0 / i;
}
cout << s << endl;*/
//38.计算:1 / 2 - 2 / 3 + 3 / 4 - 4 / 5……,前100项。
/*int a , b ,i;//a代表分子,b代表分母;
double s = 0;
for (a = 1, b = 2, i = 0; i < 100; i++,a++,b++)
{
s +=(double)a / b;//求出总和
}
cout <<s<< endl;*/
//39.从终端输入3个数a、b、c,按从大到小的顺序输出。
/* int a, b, c,t;
cin >> a >> b >> c;
if (a < b)//比较a和b的大小,并交换
{
t = a;
a = b;
b = t;
}
if (a < c)//比较a和c的大小,并交换
{
t = a;
a = c;
c = t;
}
if (b < c)//比较b和c的大小,并交换
{
t = b;
b = c;
c = t;
}
cout << a << " " << b << " " << c << endl;*/
//40.公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,
//要么总是说谎的。在回答公安人员的问题中:甲说“乙没有偷,是丁偷的”, 乙说“我没有偷,是丙偷的”,
//丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。请根据这四人的答话判断谁是盗窃者。
/* int a, b, c, d;
for ( a = 0; a <= 1; a++)
{
for ( b = 0; b <= 1; b++)
{
for ( c = 0; c <= 1; c++)
{
for (d = 0; d <= 1; d++)
{
}
}
}
}*/
//41.求s = a + aa + aaa + aaaa + ...... + aa...a的值,其中a是1~9之间的一个数字,
//表达式项数从键盘输入(设不超过10项)。例如2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),
//几个数相加由键盘控制。
//int a,i,n;
//int s = 0,t=0;
//cin >> a >> n;
//for (i = 1; i <= n; i++)//n表示次数
//{
// s = s * 10 + a;//公式为a+10*a+a+10*(10*a+a)+a
// t += s;//t来统计总的和
//}
//cout << t << endl;
//42.设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。
//例如:1234的反序数是4321。
/* int N,x;
for (N = 1000; N < 10000; N++)//大于1000和小于10000表示四位数
{
x = 9 * N;
if (N / 1000 == x % 10 && N / 100 % 10 == x / 10 % 10 && N / 10 % 10 == x / 100 % 10 && N % 10 == x / 1000)//判断拆开后的千位等于个位,百位等于十位,十位等于百位,个位等于千位
cout << N << endl;
}*/
//43.爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,
//则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。
//请问这条阶梯至少有多少阶?
/*int x=0;
for (x = 0;;x++)//从0开始判断
{
if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0)//判断是否满足
{
cout << x << endl;
break;
}
}*/
//48.求1 + 12 + 123 + ……前n项之和,其中n是从键盘输入的一个数字(1~9)。
/*int n,s=0,t=0,sum=0;
cin >> n;
for (int i = 1; i <= n; i++)//n表示循环的次数
{
t = s * 10 + i;//t用来统计每次得到的结果
s = t;
sum += s;//sum来表示总的结果
}
cout << sum << endl;*/
//49.小学生智商测试。让电脑随机出十道100以内整数的加法题(10分 / 题),
//小学生从键盘回答答案,统计小学生最后得分。
//srand(time(NULL));随机种子,确保每次随机的数字不同
//int a, b,c,count=0,d=0;//a,b代表加数,c代表小学生输入的数
//while (1)
//{
//a = rand() % 100;//随机100之内的数
//b = rand() % 100;
//if (a + b < 100)//总数小于100可以继续下面的才做
//{
// d++;//用来统计几道题
// cout << a << "+" << b << "=";
// cin >> c;
// if (a + b == c)//答对了,次数++
// {
// count++;
// }
//}
//else//else进行下一次循环
// continue;
//if (d > 9)//d的次数为10,输出总分,跳出循环
//{
// cout << "总分为:"<<count * 10 << endl;
// break;
//}
//}
//50.斐氏数列是公元13世纪数学家斐波拉契发明的。即:1,2,3,5,8,13,21,34,55,89,……,输出其前15项。
/*int i,x1=1,x2=2,s;//x1,x2表示第一和第二两个数
cout << x1 << "," << x2 << ",";
for (i = 3; i <=15; i++)//统计第三位到第15的数
{
s = x1 + x2;
if (i == 15)
{
cout << s << endl;
}
else
{
cout << s << ",";
}
//交换变量,求出其他的数
x1 = x2;
x2 = s;
}*/
第五天-第七天
标签:定义变量 一次循环 上线 数列 描述 cas 相同 += 最小
原文地址:https://www.cnblogs.com/1448560633yang/p/11221984.html