博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCCC周六/水仙花数/hdu1408,完数/
阅读量:4143 次
发布时间:2019-05-25

本文共 2652 字,大约阅读时间需要 8 分钟。

//18.3.10

cccc选拔赛/
对..倒数第二那个就是我,还是因为倒数第一来晚了一个多小时
= -...怎么说,比赛的时候还是很重要的吧,代码出现了问题要学会自己改
= -...好困啊
https://vjudge.net/contest/214770#rank
D 水仙花数
https://vjudge.net/contest/214770#problem/D
题目应该不复杂,但是不知道为啥有一个小点///
题意理解!!!
[题目]
水仙花数是指一个 n 位数 ( n >= 3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
给出一个整数M,求 >= M的最小的水仙花数。
Input
一个整数M(10 <= M <= 1000)
Output
输出>= M的最小的水仙花数
Sample Input
99
Sample Output
153
[代码是干嘛的?]不高效的重复是干嘛的,数据小就可以用for循环复制粘贴为所欲为吗???..
最开始想... k=2 k=3  没了
其实  n>=3..   10<=M这就是一个坑(仔细读题)
再然后..  是>=M 的 不是说到了M 就终止了
所以看[极限条件]的话,是输入1000之后输出比M 大最小水仙花数
这时候k=2  k=3就很没劲了...
所以还是不要偷懒了.. 
所以还是不要偷懒了.....
while (m)
{
k++;
m =m/ 10;
}
这么一个题竟然有两个坑...幸好坐着坐着做对了
[注意极限条件  注意极限条件]
虽然m可以取到10但是大概率那时候是不行的
m取到1000的时候也不是啥也不干而是向后巴拉巴拉

D

#include
#include
#include
using namespace std;int main(){ int n; cin >> n; // 2 3 4 次方..肯定会超时吧= -// int k=0; int m; for (int i = n; ; i++) { m = i; int sum = 0; if (m < 100 && m >= 10)continue;//k = 2; int k = 0; while (m) { k++; m =m/ 10; } m = i; //if (m >= 100 && m < 1000)k = 3; //if (m >= 1000)k = 5; int l = k; while(k--) { sum = sum + pow((m % 10),l); m = m / 10; } if (sum == i) { cout << i << endl; break; } //if k=1000 impossible //int sum = 0; } return 0;}

///代码
F....相似的题昨天刚写了.....
https://vjudge.net/contest/214770#status/StrongerIrene/F/0/
1,判断素数的话其实也不复杂啊= -
稍微注意一下
**[最后+1//碰到自己[碰到自己的时候!]不算]
[(手动醒目)]*****
if (x%i == 0)
sum = sum + i + (x / i);
下面是/  上面是%  啊! %的话是0啊
2,
for ( i = num1; i <= num2; i++)
这个等号,一定记得= -
很多地方的等号,都要一定记得= =
3,不容易想到啊,num1和num2没说哪个大哪个小啊
积累经验吧,这题目真的是
互换的话,,num1>num2才不满足条件,需要强行改成num1<num2的,才正常...(不会打句号)
#include
#include
#include
using namespace std;bool nor(int x){// int k; int sum = 0; for (int i = 2; i*i <=x; i++)//这个就是sqrt? { if (x%i == 0) sum = sum + i + (x / i); } if (sum+1 == x)return true; return false;}int main(){ int n; cin >> n; //似乎打表就可以????这个题????? //等下完了吃完饭去找兔周写作业 while (n--) { int num1, num2; cin >> num1 >> num2; int k; if (num1 > num2) { k = num2; num2 = num1; num1 = k; } int count = 0;int i = 0; for ( i = num1; i <= num2; i++) { if (nor(i))count++; } cout << count << endl; } return 0;}

认真读题(严肃脸)

A https://vjudge.net/contest/214770#status/StrongerIrene/A/0/

这个其实也还好,读题读明白只是在求.. 只是在求这个字符串是不是劈开一半儿还对称罢了= -

完了?完了...

就是bool那里需要花点功夫......算是暴力搞的这个题- =上次好像因为没用bool而是急着直接输出YES 和NO搞错过几个

还是直接写bool来的方便和快.....

看了一下,这样写可以

  1. if(len%2==1) {  
  2.             cout<<"NO"<<endl;  
  3.         }  
  4.         else

有个人写的return 0 ,虽然过了但是我脚的应该不对()

然后... 在语句里面写break应该问题不大了,反正这两个要区分开

用if else这个真不错..... 我是把判断奇数这个扔下面去了==

一旦不符合就break也还行吧,用bool标记上(还是,别忙着输出'no")

(似乎bool q =false会不对?...有个小问题 留着晚上评论区解答)

转载地址:http://rmuti.baihongyu.com/

你可能感兴趣的文章
DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
查看>>
流形学习-高维数据的降维与可视化
查看>>
Python-OpenCV人脸检测(代码)
查看>>
python+opencv之视频人脸识别
查看>>
人脸识别(OpenCV+Python)
查看>>
6个强大的AngularJS扩展应用
查看>>
网站用户登录系统设计——jsGen实现版
查看>>
第三方SDK:讯飞语音听写
查看>>
第三方SDK:JPush SDK Eclipse
查看>>
第三方开源库:imageLoader的使用
查看>>
自定义控件:飞入飞出的效果
查看>>
自定义控件:动态获取控件的高
查看>>
第三方开源库:nineoldandroid:ValueAnimator 动态设置textview的高
查看>>
第三方SDK:百度地图SDK的使用
查看>>
Android studio_迁移Eclipse项目到Android studio
查看>>
JavaScript setTimeout() clearTimeout() 方法
查看>>
CSS border 属性及用border画各种图形
查看>>
转载知乎-前端汇总资源
查看>>
JavaScript substr() 方法
查看>>
JavaScript slice() 方法
查看>>