c-输出从1到1000以内所有的完全平方数和完全立方数

问题描述

输出从1到1000以内所有的完全平方数和完全立方数
#include
#include
int main()
{
int abcdil;
i=1;
l=1;
a=0;
b=0;
while(a<961)
{
a=i*i;
i=i+1;
printf(""%dn""a);
}
while(b<1000)
{
b=l*l*l;
l=l+1;
printf(""%dn""b);
}
return 0;
}
怎么将输出的结果从小到大排序!!

解决方案

似乎你还没学数组?
你的代码的话某些数会算两遍,所以最后sort之后我加了unique。

#include <cstdio>#include <algorithm>using namespace std;int f[1000];int n;int main(){    int abcdil;    i=1;    l=1;    a=0;    b=0;    while(a<961)    {        a=i*i;        i=i+1;        // printf(""%dn""a);        f[n++] = a;    }    while(b<1000)    {        b=l*l*l;        l=l+1;        // printf(""%dn""b);        f[n++] = b;    }    sort(f f + n);    n = unique(f f + n) - f;    for (int i = 0; i < n; ++i)    {        printf(""%dn"" f[i]);    }    return 0;}

解决方案二:

 #include <math.h>#include <iostream.h>using namespace std;int main(){    for (int i = 1; i <= 1000; i++)    {        if (abs(pow(i 0.5) - (int)(pow(i 0.5) + 0.000001)) < 0.001 ||            abs(pow(i 1/3.0) - (int)(pow(i 1/3.0) + 0.000001)) < 0.001)            cout << i << endl;    }}

VC++新建一个控制台程序,不要去掉stdafx.h
直接贴在下面,可以编译。
是C++程序,不是C程序。

解决方案三:
http://codepad.org/MAZIPUbh
在线编译通过,结果正确。程序绝对没有问题的。

解决方案四:
http://ideone.com/fPqSYe

 #include <math.h>#include <iostream>using namespace std;int main(){    for (int i = 1; i <= 1000; i++)    {        if (fabs(pow(i 0.5) - (int)(pow(i 0.5) + 0.000001)) < 0.001 ||            fabs(pow(i 1/3.0) - (int)(pow(i 1/3.0) + 0.000001)) < 0.001)            cout << i << endl;    }}

这是另一个在线平台的编译结果。

解决方案五:
1
4
8
9
16
25
27
36
49
64
81
100
121
125
144
169
196
216
225
256
289
324
343
361
400
441
484
512
529
576
625
676
729
784
841
900
961
1000

解决方案六:

 #include<iostream>#include <cmath>using namespace std;int main(){    int nStart = 1 nEnd = 1000;    int i value;    // 完全平方    for( i = sqrt(double(nStart)); (value = i * i) < nEnd; ++i )    {        cout << value << endl;    }    //完全立方    for( i = sqrt(double(nStart)); (value = i * i * i) < nEnd; ++i )    {        cout << value << endl;    }}

解决方案七:
#include
#include
using namespace std;
int main()
{
for (int i = 1; i <= 1000; i++)
{
if (abs(pow(i 0.5) - (int)(pow(i 0.5) + 0.000001)) < 0.001 ||
abs(pow(i 1/3.0) - (int)(pow(i 1/3.0) + 0.000001)) < 0.001)
cout << i << endl;
}
}

确实不错,代码就几行,但是解决了问题哦

解决方案八:
没有人提筛选法吧,鉴于1000比较小,建立一个数组a[1001] = {0};
从1开始到1000,都做平方和立方,得值v小于1000的,设a[v] = 1;
遍历过程中,把a[v] == 1的地方都输出来。
当然,在大于10以后,不需要再做立方了,在大于31之后,直接遍历,不需要计算平方了。

解决方案九:
java写的话 好简单的。

import java.util.*;
public class Test{
public static void main(String[] args) {
Set s = new TreeSet();
for(int i=1;i<=31;i++){
s.add(i*i);
}

    for(int i=1;i<=10;i++){        s.add(i*i*i);    }    Iterator it = s.iterator();    while(it.hasNext()){        System.out.println(it.next());    }}

}

结果:
1
4
8
9
16
25
27
36
49
64
81
100
121
125
144
169
196
216
225
256
289
324
343
361
400
441
484
512
529
576
625
676
729
784
841
900
961
1000

解决方案十:
你在输出结果之前调用排序算法在输出就是了

时间: 2024-10-07 10:37:30

c-输出从1到1000以内所有的完全平方数和完全立方数的相关文章

输出从1到1000以内所有的完全平方数和完全立方数

问题描述 输出从1到1000以内所有的完全平方数和完全立方数 输出从1到1000以内所有的完全平方数和完全立方数 如下例: 1 4 8 9 16 25 27 -- 求代码!!!!!! !!!!!!! !!!!!!! 解决方案 少年要好好学习,不能只求代码啊. 感觉你要求的东西只要好好学一下就能自己写出来了吧.. 而且你没说清楚需要什么语言的代码=.= 解决方案二: #include <math.h> #include <iostream.h> using namespace std

php输出1000以内质数

 这篇文章主要介绍了php输出1000以内质数的示例,需要的朋友可以参考下   代码如下: <?php for($i = 2; $i < 1001; $i++) {  $primes = 0;  for($k = 1; $k <= $i; $k++)  if($i%$k === 0) $primes++;  if($primes <= 2) // 能除以1和自身的整数(不包括0)  echo "<strong>{$i}</strong><br

c语言-C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写。

问题描述 C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写. C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写. 解决方案 #include <stdio.h> void fun(int n) { if(n<100 || n>1000) return; int a,b,c; c=n%10; b=n/10%10; a=n/100%10; if(a*a*a+b*b*b+c*c*c == n) printf("%dn",n);

求1000以内的完数。并输出。

问题描述 publicclassWanShu{publicstaticvoidmain(String[]args){inti,j,h=0;for(i=1;i<=1000;i++){for(j=1,h=0;j<=i/2;j++){if(i%j==0)h=h+j;}if(h==i)System.out.print("1000以内的完数");System.out.println();System.out.print(i);}}}用java语言编的不知哪错了.运行结果是输出了1~1

c语言-C语言计算1000以内的水山花数,打印所有的水山花数出来

问题描述 C语言计算1000以内的水山花数,打印所有的水山花数出来 C语言计算1000以内的水山花数,打印所有的水山花数出来 解决方案 http://blog.csdn.net/tian19930910/article/details/8170967 解决方案二: //? ? int d = 0; //? ? for (int a = 1; a <= 9; a++) { //? ? ? ? for (int b = 0; b <= 9; b++) { //? ? ? ? ? ? for (in

JS实现1000以内被3或5整除的数字之和_javascript技巧

今天在技术群里看到一道这样的提:求1000以内被3或5整除的数字之和.其中看到很有趣的解法二,最开始还是挺迷惑的,后来想了下,再经人指点,就觉得茅塞顿开. 第一种解法很普遍,就是将1000以内的数都遍历一遍,只要有整除3或者整除5的数,就将其加起来,最终得到一个总的和. 让我感兴趣的是第二种解法,这里巧妙运用了数学上的等差数列 一个公差为的等差数列前项的级数为: 第二种方法第一步就用了(a1+an)/3*3,所以就变成了3*(1+333)*333/2,这一步就是把整除3的所有项都加起来. 同理,

php输出1000以内质数(素数)示例_php实例

复制代码 代码如下: <?phpfor($i = 2; $i < 1001; $i++) { $primes = 0; for($k = 1; $k <= $i; $k++) if($i%$k === 0) $primes++; if($primes <= 2) // 能除以1和自身的整数(不包括0) echo "<strong>{$i}</strong><br />";}

2016年4月1000以内学生手机推荐

2016年4月千元内手机推荐:360手机F4 参考价格:599元/799元 手机卖点:指纹识别.PDAF对焦.安全系统.高性价比 360手机F4是上个月360发布的一款千元内新机,主打高性价比.外观方面,采用了塑料材质机身,不过配备了CNC钻石切边的金属边框,机身设计圆融,握持感出色.机身正面也采用了对称美学设计,具有一定的美感.这款机子也拥有白色,金色,蓝色,粉色四种配色可选,对于一款千元内手机机来说,颜值算是不错的了. 编辑点评: 作为一款千元内指纹机,360手机F4拥有八核入门级硬件配置,

java-JAVA实现:一个数组里有1000个数,依次输出最大的10个数

问题描述 JAVA实现:一个数组里有1000个数,依次输出最大的10个数 刚接触JAVA,求各位前辈解答............... 解决方案 Random random = new Random(); List<Integer> item = new ArrayList<Integer>(); for (int i = 0; i < 1000; i++) { //System.out.println(Math.abs(random.nextInt()) % 1000);